Java高级程序设计(精品)

上传人:痛*** 文档编号:201035729 上传时间:2023-04-18 格式:DOC 页数:384 大小:4.60MB
收藏 版权申诉 举报 下载
Java高级程序设计(精品)_第1页
第1页 / 共384页
Java高级程序设计(精品)_第2页
第2页 / 共384页
Java高级程序设计(精品)_第3页
第3页 / 共384页
资源描述:

《Java高级程序设计(精品)》由会员分享,可在线阅读,更多相关《Java高级程序设计(精品)(384页珍藏版)》请在装配图网上搜索。

1、383目 录网络聊天室项目需求1设计内容1设计要求1总体设计1第一部分3第一章 JAVA入门基础3教学要求31.1 Java语言入门31.1.1 Java语言特点31.1.2 Java语言的运行环境51.1.3 Java Application程序与Java Applet程序71.2 标识符、关键字和数据类型111.2.1 标识符111.2.2 关键字121.2.3 分隔符121.2.4 数据类型121.2.5 常量与变量151.3 运算符、表达式和语句161.3.1 运算符161.3.2 表达式211.3.3 流程控制语句211.4 类、对象和接口291.4.1 类与对象291.4.2 继承

2、331.4.3 包361.4.4 接口37项目实训38第二章 异常41教学要求412.1 什么是异常412.1.1 异常处理基础412.1.2 Java异常处理机制412.2 异常的类型422.2.1 Java异常类类型422.2.2 Java异常类组成432.3 未被捕获的异常442.3.1 未被捕获的异常442.4 trycatch语句452.4.1 系统自定义异常的处理45延伸:使用多重catch语句、嵌套try语句462.5 自定义异常与throw关键字482.5.1 创建自己的异常482.5.2 使用throw抛出异常492.6 throws与finally关键字502.6.1 使用

3、throws声明异常502.6.2 使用finally关键字512.7 Java的内置异常532.7.1 Java的内置异常53相关知识链接54程序引入异常的好处54编程提示54实例运用55案例完善:聊天系统中的异常处理56项目实训57第三章 JAVA APPLET类型58教学要求:583.1 HTML简介583.2 浏览器处理Applet593.3 Applet类及其方法613.3.1 Applet类的层次613.3.2 Applet运行状态控制基本方法623.3.3 Applet绘图63相关知识链接:关于Applet的一些细节65实例运用67项目实训69第四章 图形用户界面GUI(一)AW

4、T70教学要求704.1 AWT工具集简介704.2 AWT事件模型714.3 GUI组件上的图形操作734.3.1 Graphics类734.3.2 组件重绘754.4 常用的AWT组件814.4.1 文本框和文本区824.4.2 按钮和标签854.4.3 面板和画布874.4.4 布局设计914.4.5 选择型组件984.4.6 Component类的常用方法1024.4.7 Dialog类105相关知识链接110关于Java2D、Java3D技术110项目实训112第五章 JAVA中的事件处理机制113教学要求1135.1 事件与事件处理1135.2 授权事件模型1155.3 事件类及其

5、处理1175.3.1 ActionEvent类1185.3.2 AdjustmentEvent类1245.3.3 ComponentEvent类1265.3.4 FocusEvent类1265.3.5 ItemEvent类1285.3.6 MouseEvent类1305.3.7 KeyEvent类1335.3.8 TextEvent类1365.3.9 WindowEvent类1385.4 事件适配器1405.5 事件处理的多重运用141相关知识链接143Inner类143实例运用144案例完善:聊天系统中的事件处理147项目实训148第六章 图形用户界面GUI(二)SWING150教学要求15

6、06.1 从AWT到Swing1506.2 Swing框架1516.3 JFrame、JDialog、JApplet1526.4 JPanel、JScrollPane、JSplitPane、JInternalFrame1656.5 图标和标签1736.6 各种组件1756.6.1 JButton1766.6.2 JCheckBox1776.6.3 JRadioButton1786.6.4 JComboBox1786.6.5 JTextField、JTextArea、JPasswordField1796.6.6 JTextPane1886.6.7 JMenuBar、JMenu、JMenuItem

7、、JToolBar1906.6.8 JTable1926.6.9 Timer、JProgressBar1996.6.10 JFileChooser2036.6.11 JTree208相关知识链接212paint(Graphics g)和paintComponent(Graphics g)区别212实例运用213项目实训221第七章 多线程222教学要求2227.1 Java线程模型2227.1.1 理解线程概念2227.1.2 用Thread类的子类创建线程2227.1.3 用Runnable接口创建线程2247.1.4 两种线程实现方式的对比分析2257.1.5 线程生命的控制2257.1.

8、6 多线程优先级2277.2 Java如何共享资源线程同步2297.2.1 线程安全问题2297.2.2 使用线程同步2307.2.3 死锁问题2327.3 多线程之间的通信2337.3.1 线程通信233实例运用235案例完善:聊天系统中的多线程应用237项目实训238第八章 I/O输入输出流2398.1 流的概念2398.2 字节流、字符流和预定义流2408.2.1 字节流2408.2.2 字符流2408.2.3 预定义流2418.3 File类2428.4 InputStream和OutputStream2468.4.1 FileInputStream2478.4.2 FileOutpu

9、tStream2488.5 Reader和Writer2498.5.1 FileReader2508.5.2 FileWriter2518.6 RandomAccessFile类2528.7 PipedInputSream和PipedOutputStream2548.8 过滤流与节点流2568.8.1 过滤流与节点流2568.8.2 BufferedInputStream和BufferedOutputStream2578.8.3 DataInputStream和DataOutputStream258实例运用259案例完善:聊天系统中的I/O流267实例运用267第九章 JAVA数据库连接(JD

10、BC)268教学要求2689.1 JDBC原理2689.1.1 JDBC概述2689.1.2 JDBC体系结构2699.2 JDBC编程2709.2.1 JDBC连接步骤2709.2.2 配置数据库2709.2.3 通过executeQuery( )方法进行查询2759.2.4 通过executeUpdate( )方法更新、添加、删除记录277实例运用279案例完善:聊天系统中的数据库操作283项目实训285第十章 JAVA网络编程286教学要求:28610.1 网络编程基础28610.1.1 统一资源定位(URL)28610.1.2 Internet 编址与端口号28610.1.3 客户/服

11、务器模式28810.1.4 代理服务器28810.1.5 TCP/IP与UDP协议28910.2 JAVA和网络29010.2.1 网络类和接口29010.2.2 InetAddress类29010.2.3 URL类29110.2.4 URLConnection类29210.3 Java编写TCP网络程序29410.3.1 套接字概述29410.3.2 TCP/IP客户套接字29510.3.3 TCP/IP服务器套接字29610.4 Java编写UDP网络程序29810.4.1 数据报服务器和客户29810.4.2 组播数据报301实例运用304案例完善:聊天系统中的网络编程316项目实训31

12、7第二部分318第一章 JAVA API318教学要求3181.1 理解API的概念3181.1.1 Java API包3181.2 数据类型类3201.2.1 java. lang包概述3201.2.2 Number及其子类3211.3 数学运算工具3231.3.1 Math类的方法3231.4 字符串处理3241.4.1 java. lang. String3241.4.2 java. lang. StringBuffer3271.5 java. lang包3291.5.1 java. lang. Object3291.5.2 java. lang. Class3291.5.3 java.

13、 lang. System3301.5.4 java. lang. Runtime与java. lang. Process3301.5.5 java. lang. Package3311.6 java. util包3311.6.1 Collection接口3311.6.2 java. util. Random3321.6.3 java. util. Date3331.6.4 java. util. Calendar3341.6.5 java. util. StringTokenizer335相关知识链接337有效利用编程语言的帮助文档337项目实训338第二章 JAVA与多媒体340教学要求:

14、3402.1 Image类3402.1.1 图像类型3402.1.2 创建图像3402.1.3 加载图像3412.1.4 显示图像3422.1.5 在应用程序中显示图像3432.1.6 ImageIcon类3452.1.7 图像映射3462.2 利用Java播放动画3482.2.1 利用Java播放动画3482.3 利用Java播放幻灯片3492.3.1 利用Java播放幻灯片3492.3.2 Applet中播放声音350相关知识链接352Java多媒体API参考352实例运用352项目实训355第三章 JAVA BEAN基础357教学要求3573.1 理解Java Bean3573.2 应用

15、程序开发工具3583.3 Bean开发工具包3593.4 JAR文档格式3633.5 内省机制3643.6 开发一个简单的Bean3643.6.1 如何创建自己的Bean3643.6.2 创建一个简单的Bean3653.6.3 测试Bean366附 录367附录一:JAVA编码规范及文档注释3671. Java编码规范3672. Java文档注释368附录二:JAVA2平台介绍及专有名词注释3711. Java2平台3712. Java专有名词注释371附录三:JAVA IDE工具介绍3741. UltraEdit3742. Editplus3743. Jcreator3744. Eclips

16、e3745. JBuilder3756. Visual Age for Java3757. Visual Cafe for Java3758. NetBeans与Sun Java Studio375网络聊天室项目需求设计内容设计C/S模式的网络聊天室,客户端使用Java Swing应用程序和服务器的Java应用程序进行通信。设计要求1、客户端在Swing应用程序服务器地址栏输入服务器IP,与服务器程序通信。2、客户端在和服务器建立套接字连接后,用户输入聊天的昵称和密码交给服务器验证,验证成功后可以进入聊天室。3、聊天室界面包含公共聊天信息和私人聊天信息,用户可以用鼠标点击聊天列表中某个聊天者的

17、昵称,和该聊天者进行私人聊天。4、当新的用户进入聊天室时,所有的用户都可以在聊天列表中看到该用户的昵称;当某用户退出聊天室时,聊天列表将该用户的昵称删除,聊天室显示该用户离开的消息。5、用户可以注册新的用户名和密码。总体设计C/S模式的网络聊天室程序共由6个java源文件组成。Client.java、Chat.java、Reg.java、Login.java、SendMessage.java 5个java文件生成的字节码打包后存放在客户机器上,属于客户端程序。ServerThread.java生成的字节码打包后存放在服务器上,属于服务器端程序。、客户端Client.java负责创建网络聊天室客

18、户端主窗口。Login.java负责生成用户输入昵称和密码,单击“登陆”按钮,Client.java将登陆信息交给服务器,如果验证成功将进入聊天界面。SendMessage.java和Chat.java共同组成了聊天界面。SendMessage.java负责生成信息输入框和发送按钮,Chat.java负责生成聊天信息显示界面和在线用户列表。Reg.java负责生成用户注册界面。、服务器端负责监听用户的呼叫,为每个呼叫的用户启动一个线程,在该线程中和用户交流信息。如果用户提交了公共信息,就将该信息发给所有的用户。如果用户提交私人信息,就将该信息发给指定的用户。如果用户提交登陆信息,就对信息进行验

19、证以及判断用户是否已经登陆过。如果用户提交注册信息,就进行注册。如果有新用户进入聊天室或者有用户离开聊天室就提醒其他用户,将离开用户从列表中删除。第一部分第一章 Java入门基础教学要求1掌握:典型的Java程序开发环境、Java基本数据类型、使用输入输出语句及算术运算符、编写判定语句、面向对象的开发方法及句法结构2理解:Java语言的语言特性、面向对象的编程思想3了解:applet与application的区别、Java在开发Internet和Web的分布式客户/服务器应用中的作用1.1 Java语言入门有人说,“以前,作为计算机软件人员,不能不会C+,现在不能不会Java”。这句话可能有些

20、略失偏颇,但它确实道出了Java语言在软件界中越来越重要的地位。Java语言已然成为一种流行趋势,不管是计算机专业人员还是非专业人员都应该接触和了解它,这样才能更好地适应不断发展变化的计算机技术环境。本章旨在让读者对Java语言有一个概念上的全面了解,至于Java的高级编程方面以及实用技巧,我们将在后续的章节陆续讨论。好了,就让我们来进入这趟Java之旅吧!1.1.1 Java语言特点Java是目前使用最为广泛的网络编程语言之一,具有简单、动态、面向对象、分布式、解释执行、健壮、安全、结构中立、可移植、高效能、多线程等多种特点。1、简单性Java语言是一种面向对象的语言,它通过提供最基本的方法

21、来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。Java略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外,Java也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,标准类库和线程的支持也只有215KB左右。2、面向对象Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏,而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。3、分布性Java是面向网络的语言。通

22、过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其它对象。4、鲁棒性Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的异常处理机制,在编译时,Java提示出可能出现但未被处理的异常,帮助程序员正确地进行选择以防止系统的崩溃。另外,Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。5、安全性用于网络、分布环境下的Java必须要防止病毒的入侵。Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就

23、防止程序员使用“特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。6、体系结构中立Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时刻环境,Java程序就可在任意的平台上运行。7、可移植性与平台无关的特性使Java程序可以方便地被移植到网络上的不同机器。同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,Java编译器是由Java语言实现的,Java运行时刻环境由标准C实现,这使得Java系统本身也具有可移植性。8、解释执行Java解释器直接对Java字节码进行解释执行。字节码本身携带了许多编译时信息,使得连接过程更加简单

24、。9、高性能和其它解释执行的语言如BASIC不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。10、多线程多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,我们可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。11、动态性Java语言的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。1.1.2 Java语言的运行环境学习一

25、门编程语言需要有一个程序开发环境。目前有许多较优秀的软件产品提供了Java程序开发环境,我们在附录中对其进行了详细的介绍,读者若有兴趣,可自行查阅。但初学Java语言最好选用Sun公司推出的软件开发工具箱JDK。下面简单介绍一下JDK的下载和运行环境的设置,希望对初学者有所帮助。一、JDK的下载:登陆Java的官方网站()免费下载J2SDK,如下图:图1-1 Java官方网站下载J2SE 1.4.2 SDK或者J2SE 5.0均可,本节以1.4.2为例。单击进入下图的下载界面:图1-2 JDK下载页面上图中,NetBeans是SUN提供的Java开发环境;J2SE JRE是Java的运行环境,

26、如果你只需要运行现成的Java程序,而不需要编译Java源代码,则下载JRE即可;这里我们需要下载的是中间所标明的JDK,点击该连接,即可看到新链接页面。首先需选中Accept License Agreement,然后根据操作系统平台选择合适版本。另外还可以选择是全部下载后离线安装,还是在线安装。下载完成后,安装比较简单,直接双击,程序即可自动解压缩并进行安装,一路都有画面指示,只需要遵循即可。可自行选择安装路径。安装完成后,在安装路径下的bin文件夹内,有我们所需的各种开发工具。二、设置Java运行环境:进入“控制面板”,双击“系统”,弹出“系统属性”对话框,选择“高级”单击“环境变量”按钮

27、,如下图:图1-3 环境变量单击“新建”,添加如下的系统环境变量:变量名:Path,变量值:D: jdk bin(假设JDK安装在D盘根目录下),如果曾经设置过环境变量Path,可单击该变量进行编辑操作。如下图:图1-4 环境变量配置但是,如果你的机器安装过一些商业化的Java开发产品或带有Java技术的一些产品,如PB、Oracle等,这些产品在安装后,可能会修改了Path的值,那么当运行编译器或者解释器时,很可能运行的是这些产品所带的老版本的编译器或者解释器。因此如果想使用SDK的编译器或解释器,在设置Path的值时,将需要的值写在前面。比如,某个软件用到的Path值是:D: PB jdk

28、1.1.7 bin ;如果不想删除这些产品对Path值的设置,可以重新编辑系统环境变量Path的值,并修改为:D: jdk bin ; .;D: PB jdk1.1.7 bin ;另外,SDK安装目录的jre文件夹中包含着Java应用程序运行时所需要的Java类库和虚拟机,这些类库被包含在jrelib目录中的压缩文件rt.jar中。安装SDK一般不需要设置环境变量classpath的值,如果你的机器安装过一些商业化的Java开发产品或带有Java技术的一些产品,如PB、Oracle等,这些产品在安装后,可能会修改了classpath的值,那么当运行Java应用程序时,可能加载这些产品所带的老版

29、本的类库而导致程序要加载的类无法找到,使程序出现运行错误。比如,某个软件用到的classpath值为:D: PB jdk1.1.7 jre lib classes.zip ;如果不想删除这些产品对classpath值的设置,可以重新编辑系统环境变量classpath的值,并修改为:D: jdk1.4 jre lib rt.jar;.; D: PB jdk1.1.7 jre lib rt.jar ;1.1.3 Java Application程序与Java Applet程序根据结构组成和运行环境的不同,Java程序可以分为两类:Java Application和Java Applet。Java

30、Application是完整的程序,需要独立的解释器来解释运行;而Java Applet则是嵌在HTML编写的Web页面中的非独立程序,由Web浏览器内部包含的Java解释器来解释运行。它们各自使用的场合并不相同。下面我们分别介绍Java Application与Java Applet,并比较它们之间的区别。我们先从最简单的HelloWorld.java来学习Java Application。打开记事本,在里面输入以下代码。public class HelloWorldpublic static void main(String args)System.out.println(Hello! W

31、orld);一个Java源程序是由若干个类组成的。上面的程序仅有一个类,类名是HelloWorld,类中有一个静态的main方法,它是程序的入口。我们可将这段代码保存到E盘根目录下。注意:“保存类型”应该选“所有文件”,而文件名应该为HelloWorld.java,其中.java后缀表明这是一个Java源代码文件。源文件的命名规则是:如果源文件中有多个类,那么只能有一个类是public类;如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,如果源文件没有public类,那么源文件的名字只要和某个类的名字相同即可。当创建了HelloWorld.java这个源文件之后,需对其

32、进行解释和运行,使它成为机器能够读懂的二进制文件。下图就是Java Application的解释执行过程。源代码HelloWorld.java字节码HelloWorld.classJava虚拟机JVMjavacjava编译运行操作系统图1-5 Java Application运行机制在上一小节中,我们成功地安装了JDK,它下面的bin文件夹中有我们所需的解释运行工具,我们就是通过下面这两个命令来运行Java Application。javac HelloWorld . java 编译出HelloWorld.class文件java HelloWorld 运行主类现在我们就来认识一下JDK中的其他

33、主要的工具。javac:Java编译器是将以“.java”为扩展名的Java源程序转换成可由Java解释器执行的类文件的工具。Java编译器的程序名是:javac。它的语法是:javac 选项 源程序文件(注意:要带上.java后缀)。java:Java解释器,用于运行编译过的Java应用程序。它的程序名是:java。Java解释器的语法是:java 选项 类名。javap:Java反编译器,用于分析已经编译过的Java字节码。经过反编译后,关于成员变量和方法的信息将被打印出来。Java反编译器的程序名是:javap,它的命令格式为:javap 选项 类名。javah:C头文件和承接模块文件创

34、建器,用于当需要使用C语言扩展Java代码时创建C语言头文件和承接模块的。它的语法是:javah 选项 类名。javadoc:Java文档生成工具,用于在Java源文件中生成基于标记的HTML文件。这些HTML文件用于存储关于类和方法的信息。jdb:Java调试器,它是Java环境的调试工具,是一个完全依赖命令行驱动的程序排错工具。Java Applet是另一类非常重要的Java程序,虽然它的源代码编辑与字节码的编译生成过程与Java Application相同,但它却不是一类可以独立运行的程序。首先看一个与HelloWorld.java运行结果类似的Java Applet程序:import

35、java. awt. Graphics; / 将java. awt包中的系统类Graphics引入本程序import java. applet. Applet; / 将java. awt包中的系统类Applet引入本程序public class My extends Appletpublic void paint(Graphics g)g.drawString(Hello,java applet world,10,20);其中,Java Applet中不需要有main方法,它的要求是程序中有且必须有一个类是系统类Applet的子类,也就是必须有一个类的类头部分以extends Applet结尾

36、。因为系统类Applet中已经定义了很多的成员域和成员方法,它们规定了Applet如何与执行它的解释器WWW浏览器配合工作,所以当用户程序使用Applet的子类时,因为继承的功能,这个子类将自动拥有父类的有关成员,从而使WWW浏览器顺利地执行并实现用户程序定义的功能。extends是关键字,代表新定义的类是它后面跟着的已经存在的父类的子类,Applet是父类名,父类可以是系统类,或者是其他已存在的用户自定义类。当一个类被定义成是另一个已经存在类的子类时,它将从其父类中继承一些成员,包括域和方法,这样子类都可以利用父类已实现的功能而不必重复书写语句了。包是Java系统用来组织类的组织,功能作用和

37、来源相关的系统类通常放在同一包中。虽然Java Application和Java Applet在运行方式上有很大的不同,但是它们遵循相同的Java语言的语法规则,所以编译时也使用完全相同的编译工具。若使用JDK工具包中的编译器编译,则可使用如下的语句:javac My.java 编译出My.class文件运行Java Applet时必须将其字节码嵌入到HTML文件中,以上面的程序为例,它可以嵌在如下的HTML文件中:MyApplet的运行过程可用下图来表示。首先将编译好的字节码文件和编写好的HTML文件保存在Web服务器的合适路径下,当WWW浏览器下载此HTML文件并显示时,它会自动下载此HT

38、ML中指定的Java Applet字节码,然后调用内置在浏览器IE中Java解释器来解释执行下载到本机的字节码程序。图1-6 Java Applet运行过程下面的两个图将Java Application与Java Applet做一个简单比较。图1-7 Java Applet图1-8 Java Application1.2 标识符、关键字和数据类型1.2.1 标识符标识符是用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列。Java语言规定标识符由字母、下划线、美元符号和数字组成,并且需遵循以下规则:(1)区分大小写。(2)不能以数字开头。(3)以字母或下划线_或$符号开头。(4

39、)不能使用Java的关键字。以下为合法的标识符:aIdentifier、_Identifier、a变量、$Identifier、elseother以下为不合法的标识符:2002WorldCup、IdentifierJava、else基本上,一般用于命名的符号包括字母A-Z、字母a-z、数字0-9以及Unicode字符集中序号大于0xC0的所有符号。1.2.2 关键字关键字是Java语言中已经被赋予特定意义的单词,对Java的编译器有特殊的作用,一般用来表示一种数据类型,或者程序的结构等。保留字是为Java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中很有可能成为关键字。目前Ja

40、va语言定义的关键字如下:const(保留字) goto(保留字) abstract finally int public this boolean continue float interface return throw break default for long short throws byte do native static transient case double if new strictfp try catch else implements package super void char extends import private switch volatile cl

41、ass final instanceof protected synchronize while所有的关键字都是小写。另外,不能将关键字当作标识符来使用。关键字的学习有助于我们对Java语言的语法及运行机制的掌握。1.2.3 分隔符Java语言中定义了多种分隔符,每一种分隔符都在Java程序中承担着不同的功能与作用。如下:圆括号( )在定义和调用方法时用来容纳参数表,在控制语句或强制类型转换组成的表达式中用来表示执行或计算的优先权。花括号 用来包括自动初始化的数组的值,也用来定义程序块、类、方法以及局部范围。方括号 用来声明数组的类型,也用来表示撤消对数组的引用。分号 ; 用来终止一个语句。逗

42、号 , 在变量声明中,用于分隔变量表中的各个变量.在for控制语句中,用来将圆括号内的语句连接起来。句号 . 用来将软件包中的名字与它的子包或类分隔,也用来将引用变量与变量或方法分隔。另外,还有一种较为特殊的空白分隔符,空格、Tab跳格键及换行符均属于这种分隔符。1.2.4 数据类型Java共有八种基本类型:四种是整型,两种浮点数字型,一种字符型char(用于Unicode编码中的字符),以及用于表示真假的布尔变量(boolean)。1、整型Java定义了4种整数类型:字节型(byte),短整型(short),整型(int),长整型(long)。这些都是有符号的值,无小数部分的数字,正数或是负

43、数。这些整数类型的长度和变化范围如表1-1所示:表1-1 整数的各种类型名称长度数的范围长整型649,223,372,036,854,775,808 9,223,372,036,854,775,807整型322,147,483,648 2,147,483,647短整型1632,768 32,767字节型8128127整数类型的范围与Java代码运行的所在的机器无关。长整型数字(long)有一个后缀L(如,40000000000L)。十六进制数据有一前缀0x(如,0xCAEF),八进制数据有一前缀0,例如:010就是10进制中的8。Java中没有unsigned类型。2、浮点类型Java中定义了

44、两种浮点类型:单精度(float)浮点型及双精度(double)浮点型。表1-2 浮点数的各种类型名称位数数的范围double641.7e3081.7e+308float323.4E0383.4E+038大部分程序中使用double类型。表示float类型数据时需要在后面添加后缀F,比如,3.402F。没有后缀的浮点数据(如3.402)总被认为成double类型。也可以在数字后面加上后缀,如,3.402D表示double类型。所有浮点计算都遵从IEEE754规范。有三种特殊的浮点值:正无穷大、负无穷大、NaN(非数字),用于表示溢出和出错。比如,用0去除一个整数,所得的结果正无穷大,而计算0/

45、0或者对一个负数开平方则会产生NaN。浮点类型的数据不适合在不容许舍入误差的金融计算领域使用。下面的例子计算了圆的面积。例 1-1 DoubleVariableDemo.javaclass DoubleVariableDemopublic static void main(String args)double dRadius=2.0d;double dArea=Math.PI*dRadius*dRadius;System.out.println(半径为2的圆的面积:+dArea);3、字符类型char类型用来表示Unicode编码表中的字符。Unicode定义的国际化的字符集能表示迄今为止人类

46、语言的所有字符集。它是几十个字符集的统一,例如拉丁文,希腊语,阿拉伯语,古代斯拉夫语,希伯来语,日文片假名,匈牙利语等等,因此它要求16位。这样,Java中的char类型是16位,其范围是065,536,没有负数的char。人们熟知的标准字符集ASCII码的范围仍然是0127,扩展的位字符集ISO-Latin-1的范围是0255。既然Java被设计为允许其开发的applet在世界范围内使用,因此使用Unicode码代表字符是说得通的。当然,Unicode的使用对于英语、德语、西班牙语或法语的语言是有点低效,因为它们的字符能容易地被包含在8位以内。但是为了全球的可移植性,这一点代价是必须的。4、

47、布尔类型只有两个值,真(true)和假(false)。Java中,布尔值和整数0、1不能相互转换。例 1-2 BooleanConstantDemo.javaclass BooleanConstantDemopublic static void main(String args)final boolean BFLAG=true;if(BFLAG)System.out.println(Always Print Out Me!);elseSystem.out.println(Never Print Out Me!);在使用赋值运算时,可能会遇到等号左边的数据类型和等号右边的数据类型不一致的情况,这

48、时需要把等号右边的数据类型转化成等号左边的数据类型。如果这2种类型是兼容的,那么Java将自动地进行转换。例如,把int类型的值赋给long类型的变量。而将变量从较长的数据类型转换成较短的数据类型时,则必须用到强制类型转换。如下例:例 1-3 DecisionDemo.javaclass DecisionDemopublic static void main(String args)short x=1,y=2,z;/ 错误代码/ z = x + y;/ 正确代码z=(short)(x+y);System.out.println(z);1.2.5 常量与变量1、整型常量Java的整型常量有三种形

49、式。十进制整数,如123,-456,0。八进制整数,以0开头,如0123表示十进制数83,-011表示十进制数-9。十六进制整数,以0x或0X开头,如0x123表示十进数291,-0X12表示十进制数-18。2、浮点型常量浮点数代表带小数部分的十进制值。他们可以通过标准记数法和科学记数法来表示。标准记数法由整数部分加小数部分加小数点组成。如2.0,3.14159。科学记数法是浮点数加一表明乘以10的数字指定幂次的后缀。它可以是正值或是负值。如6.022E23,314159E-05,及2E+100。3、布尔常量布尔型常量只有两个值,true和false。4、字符常量字符常量是用单引号括起来的一个

50、字符,如a,A。另外,对于那些不能直接被包括的字符,有若干转义序列,这样允许你输入你需要的字符,例如代表单个引号字符本身,n代表换行符字符。表1-3列出了字符转义序列。表1-3 字符转义序列转义序列数的范围ddd八进制字符(ddd)uxxxx十六进制Unicode码字符单引号双引号反斜杠r回车键n换行f换页t水平制表符b退格在Java程序中,我们采用如下的表示方法来定义常量:final 常量类型 常量名 = 常量值;(注意:常量名一般大写)例如:final byte BMAX = 3;变量是Java程序的一个基本存储单元。变量由一个标识符,类型及一个可选初始值的组合定义。此外,所有的变量都有一

51、个作用域,定义变量的可见性,生存期。在Java中,所有的变量必须先声明再使用。基本的变量声明方法如下:访问控制符 变量类型 变量名称 = 变量初值 (可选)例如:public int nCount = 200;例 1-4 IntegerConstantDemo.javaclass IntegerConstantDemopublic static void main(String args)final byte nMaxValue_1=100;final short nMaxValue_2=200;final int nMaxValue_3=300;final long nMaxValue_4=

52、400;System.out.println(整数常量的nMaxValue_1值+nMaxValue_1);System.out.println(整数常量的nMaxValue_2值+nMaxValue_2);System.out.println(整数常量的nMaxValue_3值+nMaxValue_3);System.out.println(整数常量的nMaxValue_4值+nMaxValue_4);/ nMaxValue_1 = nMaxValue_1 + 1; 不能更改常量的值1.3 运算符、表达式和语句1.3.1 运算符Java提供了丰富的运算符环境。Java有4大类运算符:算术运算

53、、位运算、关系运算和逻辑运算。Java还定义了一些附加的运算符用于处理特殊情况。算术运算符用在数学表达式中,其用法和功能与代数学中一样,Java定义了下列算术运算符,见表1-4所示。表1-4 算术运算符及其含义运算符含义+加法减法(一元减号)*乘法/除法%模运算(整型、浮点型均适用)+递增运算+=加法赋值=减法赋值*=乘法赋值/=除法赋值%=模运算赋值-递减运算算术运算符不能用在布尔类型上,但是可以用在char类型上,因为实质上在Java中,char类型是int类型的一个子集。下面通过几个简单例子示范一下如何运用算术运算符。例 1-5 DataConversionDemo.javaclass

54、DataConversionDemopublic static void main(String args)int nOp1=2;float fOp2=2.25f;float fResult=nOp1*fOp2;System.out.println(混合运算结果:+fResult);例 1-6 BasicMath.javaclass BasicMathpublic static void main(String args)System.out.println(Integer Arithmetic);int a=1+1;int b=a*3;int c=b/4;int d=c-a;System.o

55、ut.println(c = +c);System.out.println(d = +d);System.out.println(nFloating Point Arithmetic);double da=1+1;double db=da*3;double dc=db/4;double dd=dc-a;System.out.println(dc = +dc);System.out.println(dd = +dd);int x = 42;double y = 42.25;System.out.println(x mod 10 = + x % 10);System.out.println(y m

56、od 10 = + y % 10);关系运算符决定值和值之间的关系,例如决定相等不相等以及排列次序。关系运算符如表1-5所示。表1-5 关系运算符运算符意义=等于!=不等于大于=大于等于4)&(nOperator29)System.out.println(nOperator1大于4并且nOperator2大于9);elseSystem.out.println(逻辑关系判断不成立);逻辑运算符的运算数只能是布尔型,而且逻辑运算的结果也是布尔类型。常用的逻辑运算符见表1-6。表1-6 逻辑运算符运算符含义&逻辑与|逻辑或异或|短路或&短路与!逻辑反&=逻辑与赋值(赋值的简写形式)|=逻辑或赋值(赋值的简写形式)=异或赋值(赋值的简写形式)=相等!=不相等?:三元运算符(if-then-else)例 1-8 BoolLogic.javaclass BoolLogicpublic static void main(String args)boolean a=true;boolean b=false;boolean c=a|b;boolean d=a&b;boolean e=ab;boolean f=(!a&b)|(a&!b);System.out.println( a|b = +c);System.out.println( a&b = +d);System.out.println( a

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!