JAVA程序设计实例教程.ppt_第1页
已阅读1页,还剩231页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JAVA程序设计实例教程,主编: 关 忠 制作:李晓新 2011年3月,JAVA程序设计实例教程,第1章 你好,Java 第2章 比较大小 第3章 车辆信息显示 第4章 计算器 第5章 文本编辑器 第6章 赛马游戏 第7章 网络即时通讯,第1章 你好,Java,1.1 基础实例 1.2 基础知识Java程序设计基础 1.3 扩展知识常用的Java集成开发环境 1.4 扩展实例,引 言,Java是一种简单易用、完全面向对象、安全可靠、主要面向Internet且具有最棒的跨平台可移植性的开发工具。从现在开始,Java将带领读者进入一个全新的领域。 本章将主要通过一些比较简单的实例,使读者对于Jav

2、a能有一个初步的认识,掌握Java程序设计中最基础的知识。,1.1 基础实例,1.1.1 编写步骤 首先,执行“开始所有程序附件记事本”。然后,在记事本中输入以下内容: 1/MyFirstJavaApplication.java 2public class MyFirstJavaApplication 3 public static void main(String args) 4 System.out.println(你好,Java!); 5 6,1.1 基础实例,1.1.2 运行结果 执行“开始运行”,在弹出的“运行”对话框中,输入“cmd”,单击“确定”按钮或执行“开始所有程序附件命令提

3、示符”。在命令窗口中,使用JDK中的javac命令编译源文件MyFirstJavaApplication.java,语句如下: javac MyFirstJavaApplication.java,1.1 基础实例,编译完成后,在源文件所在的文件夹下,会生成一个名为“MyFirstJavaApplication.class”的字节码文件。然后,使用JDK中的java命令运行字节码文件MyFirstJavaApplication.class,命令如下: java MyFirstJavaApplication 该Java程序运行后,会在命令窗口中输出相应信息,1.1 基础实例,MyFirstJava

4、Application程序的运行结果,1.2 基础知识Java程序设计基础,1.2.1 Java的开发运行环境 SUN公司提供了自己的一套Java开发环境,通常称之为JDK(Java Development Kit),并且提供了多种操作系统下的JDK。随着时间的推移和技术的进步,JDK的版本也在不断的升级,如JDK1.2、JDK1.3、JDK1.4等,目前最新版本是JDK6(也就是JDK1.6)。 不同操作系统下的JDK的各种版本在使用上基本相似,大家可以根据自己的使用环境,从SUN公司的网站上下载相应的版本。本书中所使用的都是基于Windows平台下的JDK 6。,1.2 基础知识Java程

5、序设计基础,安装完成后,这个工具包中的所有内容都会放在JDK安装文件夹下,其中的bin文件夹中包含了所有相关的可执行文件。 在bin文件夹中,javac.exe是Java的编译工具,Java源文件的扩展名为.java,源文件被编译后会在其所在的文件夹中生成相应的字节码文件,字节码文件的扩展名为.class;java.exe是Java的解释工具,负责解释执行Java字节码文件。,1.2 基础知识Java程序设计基础,1.2.2 Java程序的基本结构 1Java应用程序 2Java小应用程序,1.2 基础知识Java程序设计基础,Java应用程序的执行过程,1.2 基础知识Java程序设计基础,

6、Java小应用程序的执行过程,1.2 基础知识Java程序设计基础,1.2.3 Java的基本语法格式 1标识符 在Java语言中,标识符用于为各种变量、数组、方法、类、对象、接口、包等命名。Java标识符的命名规则是: Java标识符由字母、数字、下划线(_)和美元符号($)组成,长度不限。 Java标识符的第一个字母必须是字母、下划线(_)或美元符号($)。 尽可能避免使用含$符号的标识符,因为它们常被编译器用来创建标识符的名字。 Java标识符严格区分大小写。 用户不能直接使用Java语言中的关键字作为标识符,但是它可以包含关键字作为它名字的一部分。,1.2 基础知识Java程序设计基础

7、,在同一作用域内,一般不允许有同名的标识符。 为了提高程序的可读性,标识符的命名最好能够做到“见名知义”,而且规范大小写的使用方式。通常情况下,对于标识符有以下一些风格约定: _和$一般不作为变量名,方法名的开头。 包名:全部小写,例如java、applet、awt等。 接口名、类名:每个单词的首字母都要大写,例如MyFirstJavaApplication、System、Graphics等。 变量名、对象名、方法名:第一个单词全部小写,其余单词只有首字母大写,例如anyVariableWorld、drawString等。 常量名:全部大写,例如PI、MAX_VALUE等。,1.2 基础知识J

8、ava程序设计基础,2关键字 关键字是由Java语言定义的,具有特殊含义的字符序列。 每个关键字都有一种特定的含义,不能将关键字作为普通标识符来使用。所有的Java关键字一律用小写字母表示。,1.2 基础知识Java程序设计基础,Java关键字,1.2 基础知识Java程序设计基础,3分隔符 Java程序的分隔符用于区分Java源程序中的基本成分,分为注释、空白符和普通分隔符三种。,1.2 基础知识Java程序设计基础, 注释 在程序中适当地加入注释是一种良好的编程习惯,这样会增加程序的可读性。 注释不能放在一个标识符或关键字之中,也就是说,要保证程序中最基本元素的完整性。注释不会影响程序的执

9、行结果,编译器将忽略注释。 在Java中,主要有以下三种注释形式: 单行注释:/注释部分只对当前行有效 多行注释:/*注释部分*/ 文档注释:/*注释部分*/,1.2 基础知识Java程序设计基础, 空白符 空白符包括空格、回车、换行和制表符(Tab键)。各种Java基本成分之间的多个空白符与一个空白符的作用相同。在编译过程中,编译器会忽略空白符。在程序中适当的使用空白符,可以增强程序的可读性。,1.2 基础知识Java程序设计基础, 普通分隔符 普通分隔符具有确定的含义,不能用错。它主要包括四种分隔符: 大括号:用于定义语句块,例如:定义类体、方法体和复合语句以及数组的初始化等。 ;分号:用

10、于作为语句结束的标志。 ,逗号:用于区分方法的各个参数,区分变量说明的各个变量。 :冒号:用于作为语句的标号,1.3 扩展知识常用的Java集成开发环境,1.3.1 JCreator JCreator是一个小巧灵活的Java程序开发工具,也是一个Java集成开发环境。 它可将Java程序的编写、编译、运行和调试集成进自身的环境中直接进行开发,且无需进行环境变量的设置。 在功能上与SUN公司所公布的JDK等文字模式开发工具相较之下来得容易,还允许使用者自定义操作窗口界面及无限Undo/Redo等功能。,1.3 扩展知识常用的Java集成开发环境,JCreator操作界面,1.3 扩展知识常用的J

11、ava集成开发环境,1.3.2 JBuilder JBuilder主要的特点有: JBuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB (Enterprise JavaBeans)的应用。 用户可以自动地生成基于后端数据库表的EJB Java类,JBuilder同时还简化了EJ B的自动部署功能。 JBuilder支持各种应用服务器。 JBuilder能用Servlet和JSP开发、调试动态Web应用。 利用JBuilder可以创建(没有专有代码和标记)纯Java 2应用。 JBuilder拥有专业化的图形调试界面,支持远程调试和多线

12、程调试,调试器支持各种JDK版本,包括J2ME、J2SE和J2EE。,1.3 扩展知识常用的Java集成开发环境,JBuilder操作界面,1.3 扩展知识常用的Java集成开发环境,1.3.3 Eclipse和MyEclipse 1Eclipse 概述 Eclipse是著名的跨平台的自由集成开发环境(IDE)。 Eclipse是一个开放源代码的、基于Java的可扩展开发平台。 Eclipse的前身是IBM的Visual Age for Java。 Eclipse是可扩展的体系结构,可以集成不同软件开发供应商开发的产品,将他们开发的工具和组件加入到Eclipse平台中。,1.3 扩展知识常用的

13、Java集成开发环境, Eclipse的结构和内核 Eclipse本身作为一个开放源码的软件项目,它主要包含3个子项目:平台子项目、Java开发工具(JDT-java)子项目和插件开发环境(PDE-plug-in)子项目。 Eclipse目前的最新版本为Eclipse 3.5.2。,1.3 扩展知识常用的Java集成开发环境,2MyEclipse MyEclipse是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合。 MyEclipse目前支持Java Servlet、AJAX、JSP、JSF、Struts、Spring、Hibernate、EJB3、JDBC数据库链接工具等

14、多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工 具。 MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。 它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSF、CSS、Javascript、SQL、Hibernate。,1.3 扩展知识常用的Java集成开发环境,在结构上,MyEclipse的

15、特征可以被分为7类: J2EE模型 WEB开发工具 EJB开发工具 应用程序服务器的连接器 J2EE项目部署服务 数据库服务 MyEclipse整合帮助,1.3 扩展知识常用的Java集成开发环境,MyEclipse操作界面,1.4 扩展实例,在本节中,将使用Eclipse来开发一个简单的Java应用程序。 通过实例,请读者熟悉一下Eclipse开发环境,本书后面都会使用Eclipse来进行相应的开发。,1.4 扩展实例,1启动Eclipse 启动介面,1.4 扩展实例,2创建Java项目 执行“文件新建Java项目”,在弹出的“新建Java项目”对话框中,设置“项目名”,并在内容中设置项目的

16、保存位置, 然后,单击“完成”按钮,完成Java项目的创建工作,系统会在项目的保存位置上创建相应的文件夹。,1.4 扩展实例,3创建Java类 执行“文件新建类”,在弹出的“新建Java 类”对话框中,设置类名。 然后,单击“完成”按钮,完成Java类的创建工作,系统会自动在项目文件夹中创建相应的文件。,1.4 扩展实例,4编写Java类 在编辑窗口中,输入以下Java程序代码: 1/MyFirstJavaApplication1.java 2import javax.swing.JOptionPane; 3public class MyFirstJavaApplication1 4publi

17、c static void main(String args) 5JOptionPane.showMessageDialog(null,你好,Java!); 6 7 输入完成后,执行“文件保存”,即可完成在Eclipse下第一个Java程序的编写工作。,1.4 扩展实例,1.4.2 运行结果 执行“运行运行”或“运行运行方式Java应用程序”,即可执行程序。如果程序尚未保存,Eclipse会询问在执行前是否要保存文档,然后执行程序。该Java程序运行后,执行结果如图 .,1.4 扩展实例,MyFirstJavaApplication的运行结果,第2章 比较大小,2.1 基础实例 2.2 基础知

18、识Java基本语 2.3 扩展知识数组法 2.4 扩展实例,引 言,通过上一章的学习,读者对于Java已经有了一个初步认识,掌握了Java程序设计的基础知识。 本章中,将通过一个比较数值大小的实例来进一步学习Java语言的基本语法规则,从而让读者能够使用Java开发工具编写出一个具备数值比较功能的Java程序。,2.1 基础实例,现在将编写一个Java应用程序,主要用于实现两个数大小的比较,并给出比较结果。 通过实例,读者将进一步学习Java语言的基本语法规则。,2.1 基础实例,2.1.1 编写步骤 1启动Eclipse 2创建Java项目 3创建Java类 4编写Java类,2.1 基础实

19、例,在编辑窗口中,输入以下Java程序代码: 1/Compare.java 2import javax.swing.JOptionPane;/装载JOptionPane类 3public class Compare 4public static void main(String args) 5String s1,s2; 6s1=JOptionPane.showInputDialog(请输入第一个整数:); 7/s1接收来自输入文本框的第一个整数 8s2=JOptionPane.showInputDialog(请输入第二个整数:); 9/s2接收来自输入文本框的第二个整数 10int first

20、Number,secondNumber; 11firstNumber=Integer.parseInt(s1); 12/将字符串s1转换成整数赋值给firstNumber 13secondNumber=Integer.parseInt(s2); 14/将字符串s2转换成整数赋值给secondNumber,2.1 基础实例,15/比较两个数的大小 16if(firstNumbersecondNumber) 17JOptionPane.showMessageDialog(null, firstNumber+大于+secondNumber); 18 19else if(firstNumber=sec

21、ondNumber) 20JOptionPane.showMessageDialog(null, firstNumber+等于+secondNumber); 21 22else 23JOptionPane.showMessageDialog(null, firstNumber+小于+secondNumber); 24 25 26 输入完成后,执行“文件保存”,即可完成在Eclipse下Java程序的编写工作。,2.1 基础实例,2.1.2 运行结果 执行“运行运行”,即可执行程序。 如果程序尚未保存,Eclipse会询问在执行前是否要保存文档,然后执行程序。 该Java程序运行后,按对话框提示

22、操作。,2.2 基础知识Java基本语,Java是基于C+语言开发出来的,因此其语法规则与C/C+非常相似,但是又有所不同。 接触过C/C+的读者,学习时要特别注意Java与C/C+的区别。 下面详细介绍Java的基本语法。,2.2 基础知识Java基本语,2.2.1 数据类型,2.2 基础知识Java基本语,1 整数类型,2.2 基础知识Java基本语,2浮点数类型,2.2 基础知识Java基本语,3字符类型 在Java中,利用关键字char来定义字符类型的数据。字符型数据是用单引号括起来的单个字符。例如:char c = A。 Java中的字符型数据是基于16位的Unicode字符集,每个

23、字符占两个字节。Java中的字符型数据属于整型数据,但是无符号的整型数据,其取值范围为02161。,2.2 基础知识Java基本语,4逻辑类型 逻辑类型,又称为布尔类型,用关键字boolean来表示。例如:boolean b = false。,2.2 基础知识Java基本语,2.2.2 常量与变量 1常量 常量是不能被程序修改的固定值,在程序运行之前,其值就已经确定了。在Java中,定义常量时需要使用final关键字。定义基本数据类型的常量的基本语法格式为: 修饰符 final 基本数据类型 常量名1=数值1 , 常量名2=数值2;,2.2 基础知识Java基本语,Java中的常量,主要有:

24、整型常量 整型常量分为单字节整型、短整型、整型和长整型4种,它们均可以用十进制、八进制和十六进制三种方式表示。 十进制整数:十进制整数的第一位数字不能为0。例如:123、-456、23L。 八进制整数:要求必须以0为前导,例如:0123、-011、0377L。 十六进制整数:要求必须以0 x或0X作为前导,例如:0 x123、-0X1A2D、0XFFFL。,2.2 基础知识Java基本语, 实型常量 实型常量分为单精度和双精度两种类型。实型数据只采用十进制数表示,有小数形式和指数形式两种不同的表示。 小数形式(标准形式):由数字和小数点组成,且必须有小数点。例如:0.123、1.23D, -0

25、.9901F。 指数形式(科学计数法形式):用指数幂的形式表示,要求必须有指数部分。例如:123e3、123E-3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。,2.2 基础知识Java基本语, 字符常量 字符常量是用单引号括起来的一个字符,例如:a、A。Java中还允许使用转义字符来将其后的字符转变为其他的含义。,2.2 基础知识Java基本语,Java中常用的转义序列,2.2 基础知识Java基本语, 逻辑常量 逻辑常量只有两个值:true和false,分别代表布尔逻辑中的“真”和“假”。 在Java中,逻辑常量不能转换成任何其他类型的数据。 true和false只能赋值给声明

26、为boolean类型的变量,或者用于逻辑运算表达式中。,2.2 基础知识Java基本语,2变量 变量是在程序运行过程中可以赋值并能够对其值进行更改的数据。 变量是Java程序中的基本存储单元,它的定义包括变量名、变量值、变量类型和作用域几个部分。 变量根据其所属的数据类型划分:基本数据类型变量和引用数据类型变量(复合数据类型变量)。 根据变量被声明的位置划分为:局部变量、成员变量。,2.2 基础知识Java基本语, 变量的定义与初始化 变量的赋值与类型转换 变量的作用域,2.2 基础知识Java基本语,成员变量的默认初始化原则,2.2 基础知识Java基本语,2.2.3 运算符和表达式 表达式

27、是由变量、常量和各种运算符组成的式子,是程序的基本组成单位之一。 表达式可以是程序语句的一部分,也可以是一个单独的程序语句。 表达式的值就是表达式中的各变量、常量经过运算所得到的结果,而这些运算就主要是由表达式中的运算符来规定。,2.2 基础知识Java基本语,1运算符 算术运算符,2.2 基础知识Java基本语,自增、自减运算符,2.2 基础知识Java基本语, 关系运算符,2.2 基础知识Java基本语, 逻辑运算符,2.2 基础知识Java基本语, 位运算符,2.2 基础知识Java基本语, 赋值运算符,2.2 基础知识Java基本语, 条件运算符 条件运算符是Java语言中唯一的一个三

28、目运算符,其一般形式为:表达式?语句1:语句2。 在计算条件表达式时,先计算表达式,如果值为true,就执行语句1,并将其结果作为条件表达式的值;否则执行语句2,并将其结果作为条件表达式的值。 其中表达式的运行结果必须是布尔型数据,语句1和语句2返回的数据的数据类型必须保持一致。,2.2 基础知识Java基本语, 其他运算符,2.2 基础知识Java基本语,2表达式 表达式的值和类型 表达式的运算顺,2.2 基础知识Java基本语,运算符的优先顺序,2.2 基础知识Java基本语,2.2.4 流程控制 1顺序结构 程序从上至下一行一行执行的结构,中间没有分支和跳转,直到程序结束。 一般情况下,

29、程序中的语句都是按程序设计时所确定的次序一个语句接一个语句地顺序执行的。,2.2 基础知识Java基本语,2选择结构 选择结构提供了一种控制机制,使得程序的执行可以跳过某些语句不执行,而转去执行特定的语句。 在Java中,选择语句包括if语句(单选)、ifelse语句(双选)和switch语句(多选),2.2 基础知识Java基本语,3循环结构 循环语句的作用是反复执行一段代码,直到满足终止循环的条件为止。Java语言中提供的循环语句有: while语句 do-while语句 for语句,2.2 基础知识Java基本语,4跳转语句 在使用循环语句时,只有循环条件表达式的值为false时才能结束

30、循环。 想要提前中断循环,则需要使用break语句,还可以在循环语句块中添加continue语句,来跳过本次循环要执行的剩余语句,然后开始执行下一轮循环。,2.3 扩展知识数组法,Java中,数组是一种最简单的复合数据类型。 数组是有序数据的集合,数组中的每个元素都具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素,这些数据在内存中的存放是连续的。数组分为一维数组和多维数组。,2.3 扩展知识数组法,2.3.1 一维数组 1一维数组的声明 在Java中,一维数组的定义形式为: 数组元素类型 数组名 ; 数组元素类型 数组名;,2.3 扩展知识数组法,2一维数组的初始化 可

31、以在定义数组的同时为数组元素分配空间并赋值,也就是对数组进行静态初始化。例如: int intArray=1,2,3,4; String stringArray=abc, How, you;,2.3 扩展知识数组法,3一维数组元素的引用 只有完成了对所有数组元素的创建和初始化工作之后,才可以在程序中引用数组元素、修改其属性和调用其方法。 Java中数组元素的引用是通过数组下标来实现的,其引用方式为: 数组名数组下标 其中数组下标可以为整型常数或表达式,下标从0开始,到数组元素个数值减1为止。每个数组都有一个属性length来指明它的长度,即数组元素的个数。,2.3 扩展知识数组法,2.3.2

32、多维数组 1二维数组的定义 在Java中,二维数组的定义形式为: 数组元素类型 数组名 ; 数组元素类型 数组名;,2.3 扩展知识数组法,2二维数组的初始化 静态初始化 Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。例如: int intArray =1,2,2,3,3,4,5; 动态初始化 直接为每一维分配空间,具体语法格式如下: 数组名= new 数组元素类型arrayLength1arrayLength2; 从最高维开始,分别为每一维分配空间: 数组名= new 数组元素类型arrayLength1 ; 数组名0 = new

33、 数组元素类型arrayLength20; 数组名1 = new 数组元素类型arrayLength21; 数组名arrayLength1-1 = new 数组元素类型arrayLength2n;,2.3 扩展知识数组法,3二维数组元素的引用 与一维数组相同,二维数组元素可以通过指定数组元素下标的方式进行引用。 对二维数组中的每个元素,引用方式为:数组名index1index2。 需要注意的是:在数组的每一维中,数组元素的编号均从0开始,到该维的数组元素个数减1结束。,2.4 扩展实例,2.4.1 编写步骤 首先,通过双击Eclipse文件夹中的名为Eclipse的可执行文件,就可以启动Ecl

34、ipse了。然后,开始进行Java程序的开发。 1创建Java项目 执行“文件新建Java项目”,在弹出的“新建Java项目”对话框中,设置“项目名”,并在内容中设置项目的保存位置。然后,单击“完成”按钮,完成Java项目的创建工作,系统会在项目的保存位置上创建相应的文件夹。,2.4 扩展实例,2创建Java类 执行“文件新建类”,在弹出的“新建Java 类”对话框中,设置类名。然后,单击“完成”按钮,完成Java类的创建工作,系统会自动在项目文件夹中创建相应的文件。,2.4 扩展实例,3编写Java类 在编辑窗口中,输入以下Java程序代码: 1/BubbleSort.java 2publi

35、c class BubbleSort 3public static void main(String args) 4int a=27,6,4,8,10,12,89,68,45,37; 5System.out.println(排序前的数据序列:); 6printArray(a); 7System.out.println(选择排序的各趟结果:); 8sortBubble(a); 9printArray(a); 10 11 12/数组排序的方法,2.4 扩展实例,13 public static void sortBubble(int a) 14 int hold; 15for(int pass=1

36、;passai+1) 18 hold=ai; 19 ai=ai+1; 20 ai+1=hold; 21 22 printArray(a); 23 ,2.4 扩展实例,24 25 26/打印数组的方法 27 public static void printArray(int b) 28for(int i=0;ib.length;i+) 29System.out.print( +bi); 30System.out.println(); 31 32 输入完成后,执行“文件保存”,即可完成在Eclipse下Java程序的编写工作。,2.4 扩展实例,2.4.2 运行结果 执行“运行运行方式Java应用

37、程序”,即可执行程序。 如果程序尚未保存,Eclipse会询问在执行前是否要保存文档,然后执行程序。 在Eclipse下运行Java程序时,通常会将在命令窗口中显示的结果显示在“控制台”中。,2.4 扩展实例,冒泡排序运行结果,第3章 车辆信息显示,3.1 基础实例 3.2 基础知识面向对象程序设计基础 3.3 扩展知识面向对象程序设计高级 3.4 扩展实例,引 言,本章介绍了如何使用java语言实现面向对象程序设计的基本概念,包括类和对象的关系,类的实例化,类的派生和继承,多重继承的功能接口以及包等概念,并综合运用上述知识给出了两个简单的车辆信息显示的实例。,3.1 基础实例,本实例的功能是

38、通过类及对象的创建等操作,完成一个可以显示小轿车信息的程序。 3.1.1 编写步骤 在Eclipse中建立一个小轿车类,在其中定义了小轿车的各种属性及其方法,并对小轿车类进行实例化,创建一个速腾轿车的对象。 设置速腾轿车对象的属性,并执行相关的方法,最后显示出这个对象的各种信息。,3.1 基础实例,程序的源代码清单 1public class CarDisp /小轿车类 2 3public static void main(String args) 4CarDisp Sagitar = new CarDisp(); /创建对象速腾 5 6Sagitar.color = 黑; 7Sagitar.

39、model = 速腾; 8Sagitar.horsepower = 小; 9Sagitar.manufacturer = 一汽大众; 10 11System.out.println(车辆类型:+Sagitar.type); 15System.out.println(生产厂家:+Sagitar.manufacturer); 16 17System.out.println(当前车速:+Sagitar.speed+ 行驶方向:+Sagitar.direction); ,3.1 基础实例,34 35 36public String type;/车辆类型 37public String color; /

40、颜色 38public String model; /型号 39public String horsepower; /马力 40public String manufacturer; /生产厂家 41public int speed;/速度 42public String direction;/方向 43 44public CarDisp() 45type = 小轿车; 46direct 48 49 50public void run()/ 行驶方法 53 54 55public void turnleft()/左转弯方法 57 78,3.1 基础实例,3.1.2 运行结果,3.2 基础知识面

41、向对象程序设计基础,3.2.1面向对象程序设计的特点 1封装性 (Encapsulation) 2继承 (Inheritance) 3多态性 (Polymorphism),3.2 基础知识面向对象程序设计基础,3.2.2 类的建立与声明 类(Class)实际上是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。 类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。,3.2 基础知识面向对象程序设计基础,类定义的一般形式如下: 限制符 class 类名 类体 类的定义由类头和类体两部分组成。,3.2 基础知

42、识面向对象程序设计基础,3.2.3 类中的属性和方法 1属性 属性就是数据成员,它们指定了该类的内部表示,其一般由常量或变量组成,比如基础实例中第36行到41行,就是类属性的定义。 在类定义中属性可以赋初值,如果设置了初始值,实例化对象后,对象中的属性就会继承该值。如果没有在类定义中设置初始值,则在实例化对象后,要进行显式的赋值操作,否则该值会为空(null)。,3.2 基础知识面向对象程序设计基础,2方法 方法是包含一系列语句的代码块,他们指定了该类的操作方法,方法一般由方法头和方法体组成,方法的定义如下: 限制符 返回值类型 方法名(参数类型 参数1, 参数类型 参数2,) 方法体 ,3.

43、2 基础知识面向对象程序设计基础,3构造方法 方法中有一个特殊的应用,当方法名与类名相同时,这个方法被称为构造方法,即在对象被实例化时自动调用的一个方法,一般将需要初始化的语句放在其中。 构造方法没有返回值,因此不需要设置返回值类型,,3.2 基础知识面向对象程序设计基础,3.2.4 类中的访问权限 1public修饰符 2private修饰符 3protected修饰符 4friendly修饰符 5修饰符使用时的注意,3.2 基础知识面向对象程序设计基础,3.2.5 对象 所谓对象就是类的实例化,一个对象就是类中所定义的一组变量和相关方法的集合。 对象的变量是构成对象的核心,不同对象的变量是

44、分离的。对象通过成员变量和类方法进行相互间的交流,以实现各种复杂的行为。,3.2 基础知识面向对象程序设计基础,1对象的声明 对象的声明与普通变量的声明相似,首先指定一个类名作为这个对象的类类型,然后在类名后写一个对象名即可。 对象声明的例子如下所示: 类A 对象A; 类B 对象B1, 对象B2; 类A实例化了一个对象A,类B实例化了两个对象B1和B2。,3.2 基础知识面向对象程序设计基础,2对象的创建 示例中创建了两个对象: 对象A=new 类A(); 对象B1=new 类B(“hello”);,3.2 基础知识面向对象程序设计基础,3访问对象中的成员 对象成员的引用方式必须使用运算符“.

45、”, 数据成员和方法的引用格式如下所示: 对象名.数据成员名 对象名.方法名(参数表) 例如基础实例中的第6行和第20行等。,3.3 扩展知识面向对象程序设计高级,3.3.1 派生与继承 继承是面向对象程序设计的一种重要手段。在面向对象的程序设计中,采用继承的机制可以有效地组织程序的结构,设计系统中的类,明确类间关系,充分利用已有的类来完成更复杂、深入的开发,大大提高程序开发的效率,降低系统维护的工作量。 类继承也称为类派生,是指一个类不需要进行任何定义就可以拥有其他类的非私有成员,实现代码重用。,3.3 扩展知识面向对象程序设计高级,父类与子类的层次关系,3.3 扩展知识面向对象程序设计高级

46、,3.3.2方法重载 方法重载的引入简化程序员的工作,将方法的选择交由Java系统负责。如果没有重载,在编写如下语句段 为 public int add1(int a, int b) return a+b; public float add2(float a, float b) return a+b; 现在有了方法重载,就可以将方法名写成相同的名称,如下所示: public int add(int a, int b) return a+b; public float add(float a, float b) return a+b; ,3.3 扩展知识面向对象程序设计高级,3.3.3接口 1接

47、口的定义 Java语言中的接口是通过interface关键字来声明的, 其声明格式如下: interface 接口名 接口体 ,3.3 扩展知识面向对象程序设计高级,一个清扫设备接口示例定义: interface CleaningEquipment /清扫设备接口 public int CleanerNumber = 2; public void CleanBegin(); public void CleanStop(); ,3.3 扩展知识面向对象程序设计高级,2接口的继承 具体的语法格式为: interface 子接口名 extends 父接口名1, 父接口名2 接口体 ,3.3 扩展知识

48、面向对象程序设计高级,3接口的实现 接口中只声明了方法成员,而没有给出方法体,这样还不能在程序中使用,要想使用接口中声明的方法成员,就必须在实现接口的类中给出方法体,这个过程称为接口的实现。 在类的声明中,用implements子句来表示实现某个或某些接口。,3.3 扩展知识面向对象程序设计高级,3.3.4 包 所谓“包”就是一个设定的命名集合,它是Java提供的组织类和接口的一种有效工具,定义的类都加入某一个包中,并作为包的一部分存在,Java类中的成员变量和成员方法都在类中定义,使用包机制使得每个Java的变量和方法都可以用全限定的名字来表示,包括包名、类名和成员(方法和变量)名,各部分间

49、用点号分隔即可。,3.3 扩展知识面向对象程序设计高级,1包的创建 创建一个包非常简单,在Java源文件的最开始包含一个package语句即可。 其语法格式如下: package 包名; 为了更好地使用包中的类,可以创建不同层次的包,这通常是由不同包的功能分类决定的。采用下面的形式可以创建一个包的层次结构: package p1.p2.p3;,3.3 扩展知识面向对象程序设计高级,2包的使用 定义好的包可以通过import语句来引用。在Java源文件中,import语句需要放在package语句之后,但在其他任何类定义之前。 import package1.package2.(classnam

50、e|*);,3.3 扩展知识面向对象程序设计高级,3Java的常用包 java.lang包 java.io包 java.util包 包 java.awt包 java.awt.image包 java.applet包 java.text包 java.beans包,3.4 扩展实例,3.4.1编写步骤 在Eclipse中新建立一个项目CarDisp2,并在其中增加类文件CarDisp2.java,然后在其中输入语句。,3.4 扩展实例,3.4.2 调试与运行 编写完成后,测试 并运行程序,运行结 果如图 。,第4章 计算器,4.1 基础实例 4.2 基础知识(一)界面设计与布局管理器 4.3 基础知

51、识(二)事件处理 4.4 扩展知识异常处理 4.5 扩展实例,引 言,本章介绍了Java图形用户界面(GUI)和事件处理的基础知识,包括图形用户界面中AWT和Swing两个类库中常用的容器和组件等;各类常用的事件处理机制。 同时还介绍了异常处理机制在Java语言中的应用,并综合运用上述内容完成计算器的实例。,4.1 基础实例,本实例是一个简易计算器,功能是可对数字进行加(+)、减(-)、乘(*)、除(/)简单算术计算。 4.1.1 编写步骤 在Eclipse中建立一个项目,名称为Calculator, 在项目中建立一个类文件,名称与项目名相同,在类文件中输入相应的程序代码。,4.1 基础实例,

52、4.1.2 运行结果 编写完成后,可以测试程序的运行结果。 首先通过单击按钮选择数值1,单击运算符号选择做什么运算,再选择数值2,最后单击等号按钮,得出数值1和数值2运算了后的结果。,4.1 基础实例,计算器程序界面,4.1 基础实例,本程序的主要功能: 使用鼠标单击数字按钮,上方文本区会对应显示出应数字内容。单击”C”按钮可以清空显示回复0显示。 当单击对应的运算符号时,如果是第一次计算则会等待用户选择第二个数值,如果已经计算过则把前面的结果显示出来后,把结果作为第一个数值再进行计算。 当单击等号按钮,对前面选择的数值和运算符进行运算得出结果。可以把结果继续用于计算,也可以再单击其他数值进行

53、下一次的运算。,4.2 基础知识(一)界面设计与布局管理器,图形用户界面GUI(Graphical User Interface)是程序提供给用户操作的图形界面。包括窗口、菜单、按钮、文本区、复选框和其它各种屏幕元素。 Java中提供了AWT和Swing两个类库为GUI设计提供了丰富的功能。,4.2 基础知识(一)界面设计与布局管理器,4.2.1 容器 1面板 2窗口(Window) 3框架(Frame),4.2 基础知识(一)界面设计与布局管理器,4.2.2 AWT常用组件,4.2 基础知识(一)界面设计与布局管理器,1框架(Frame) 用Frame创建一个Windows窗口,用于存放其它

54、的组件,通过add( )方法向容器中添加。 代码: Frame f; /创建一个框架 f=ew Frame(“窗口标题名称”); /实例化窗口对象f,4.2 基础知识(一)界面设计与布局管理器,Frame类常用的构造方法,4.2 基础知识(一)界面设计与布局管理器,2标签(Label) 标签是显示文本的组件,可以显示单行的字符串,起着传递消息的作用。用户不能对其进行修改,只能查看其内容。 代码: Label myLabel; /创建一个标签 myLabel =new Label(“标签文字”); /实例化标签对象,设置标签文字 添加标签 f.add(myLabel); /把标签添加到容器f中。

55、,4.2 基础知识(一)界面设计与布局管理器,Label类常用的构造方法和常用的方法,4.2 基础知识(一)界面设计与布局管理器,3按钮(Button) 按钮是用来触发特定动作的组件。当用户用鼠标单击按钮时,系统会自动执行与该按钮相联系的程序,从而完成预先制定的功能。 代码: Button myButton; myButton=new Button(“按钮”); /实例化按钮 添加标签 f.add(myButton); /把按钮添加到容器f中。,4.2 基础知识(一)界面设计与布局管理器,Button类常用的构造方法和常用的方法,4.2 基础知识(一)界面设计与布局管理器,4文本框(TextF

56、ield) 用来接收用户通过键盘输入的单行文本信息。通过事件处理机制,程序可以使用这些文本或数据信息。 代码: TextField myTextField; myTextField =new TextField (“显示的文本”,10); /实例化单行文本,并指定初始化文字和宽度为容纳10个字符。,4.2 基础知识(一)界面设计与布局管理器,TextField类常用的构造方法,4.2 基础知识(一)界面设计与布局管理器,TextField类常用的方法及其说明 代码 myTextField.getText(); myTextField.setText(“新文本内容”); /设置文本框显示的文本。

57、 myTextField.setEditable(false); /设置文本框内容不能再编辑。,4.2 基础知识(一)界面设计与布局管理器,5文本域(TextArea) 用来接收用户通过键盘输入的多行文本信息。 代码: TextArea my TextArea; my TextArea =new TextArea (“显示的文本”,10,3); /实例化多行文本区,并指定初始化文字和该文本区的行数和列数。,4.2 基础知识(一)界面设计与布局管理器,TextArea类常用的构造方法,4.2 基础知识(一)界面设计与布局管理器,TextArea类常用的方法,4.2 基础知识(一)界面设计与布局管

58、理器,6复选框(Checkbox) 复选框可以让用户进行多项选择。复选框有两种状态,分别为“开”和“关”。当用户点中复选框时候,复选框的状态就会改变。 代码: Checkbox myCheckbox; myCheckbox=new Checkbox(“复选框”); /创建复选框,并指定复选框的标签内容。,4.2 基础知识(一)界面设计与布局管理器,Checkbox类常用的构造方法,4.2 基础知识(一)界面设计与布局管理器,7单选按钮组(CheckboxGroup) 单选按钮是在复选框的基础上创建的。单选按钮的选择是互斥的,当用户选中了组中的一个按钮后,其他按钮自动处于未选中状态。 代码: C

59、heckboxGroup myCheckboxGroup=new CheckboxGroup();/创建一个单选按钮组 Checkbox myCheckbox1=new Checkbox(“单选1”,myCheckboxGroup,true);/创建一个复选框1,并把其加入到上面创建的单选按钮组中,设置默认为选中状态。 Checkbox myCheckbox2=new Checkbox(“单选2”,myCheckboxGroup,false);/创建一个复选框2,加入单选按钮组中,设置默认状态为未选中状态。 最后将组件放置到容器中时,只把复选框添加即可 f.add(myCheckbox1);/向f中添加复选框对象,而不是单选按钮组。 f.add(myCheckbox2);,4.2 基础知识(一)界面设计与布局管理器,CheckboxGrou类常用的构造方法,4.2 基础知识(一)界面设计与布局管理器,8下拉列表(Choice) 下拉列表的选项框每次只能显示一个选项。如果希望查看或选择其他的选项,需点击下拉列表右边的下箭头,并从选项框中选择一个选项。 代码: Choice

温馨提示

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

评论

0/150

提交评论