Java从入门到实践.ppt

上传人:本田雅阁 文档编号:2124765 上传时间:2019-02-19 格式:PPT 页数:226 大小:1.30MB
返回 下载 相关 举报
Java从入门到实践.ppt_第1页
第1页 / 共226页
Java从入门到实践.ppt_第2页
第2页 / 共226页
Java从入门到实践.ppt_第3页
第3页 / 共226页
亲,该文档总共226页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java从入门到实践.ppt》由会员分享,可在线阅读,更多相关《Java从入门到实践.ppt(226页珍藏版)》请在三一文库上搜索。

1、第1章 Java语言概述,Java语言是当前非常流行的开发语言,广泛应用于信息技术、科学研究、军事工业、航空航天等各个领域。Java语言发展到今天,互联网的快速发展起了很大的推动作用。下面将对Java语言的发展、特点、运行环境等方面做个简要介绍,使读者对Java语言有个全面了解。本章包括以下知识点。(源码网整理:) Java语言简介; 运行环境的搭建; 编写第一个Java程序。 通过学习本章内容,读者可以对Java语言有个全面的了解,并且掌握Java程序运行环境的搭建过程。,1.1 Java语言简介,Java语言是当前非常流行的开发语言,不过发展到今天也走过了非常曲折的道路。下面就从语言的发展

2、、特点、工作原理几个方面详细介绍一下Java语言。,1.1.1 Java语言的发展,计算机编程语言不断发展,Java语言发展到今天也走过了非常曲折的道路。事物的产生都有其必然的因素,Java语言的出现也验证了这一点。透过Java语言的发展历程,可以更详尽的了解什么是Java。 Java语言发展到今天,可以说互联网的快速发展起了很大的推动作用。现在谈到Java,已不仅仅表示一门程序语言,更是一种软件开发平台。Java已经演化出了J2SE、J2EE、J2ME三个版本,分别面向不同领域的应用开发。 1Java 2 Platform,Standard Edition(J2SE) 2Java 2 Pla

3、tform,Enterprise Edition(J2EE) 3Java 2 Platform,Micro Edition(J2ME),1.1.2 Java语言的特点,Java语言是一种分布式的面向对象编程语言,在各个行业领域开发中得到了广泛的应用。作为一种 程序设计语言,Java具有面向对象、平台无关、简单、健壮、多线程、安全等诸多特性。下面就这些方面特性分别进行讨论。 1面向对象 2平台无关性 3简单性 4解释执行 5网络的 6分布式 7健壮性 8.可扩展性 9.安全性,1.1.3 工作原理,虚拟机(JVM)与垃圾回收是Java语言工作的两种重要机制,下面对其分别进行详细介绍。 1Java

4、虚拟机(JVM) 2垃圾回收机制,1.2 Java程序运行环境,在使用一门语言之前,首先需要搭建相关的运行环境。下面就从JDK的安装、环境变量设置、开发工具几个方面介绍如何搭建Java语言的运行环境。,1.2.1 下载、安装JDK,要进行Java应用程序开发,首先需要安装JDK(Java Development Kits)。JDK是Sun公司提供的一套Java开发环境,具有多种操作系统的多个版本。自从Java诞生以来,JDK的版本一直在不断升级,如JDK1.3、JDK1.4、JDK1.5。下面以J2SE 6.0 Development Kits在Windows操作系统下的安装为例,逐步搭建Ja

5、va程序的运行环境。,1.2.2 设置环境变量,Java程序运行的环境变量主要包括Path和Classpath。Path用于指定JDK包含的工具程序所在的路径,这与设置操作系统中其他应用程序的Path是一样的。Classpath是Java程序运行所特需的环境变量,用于指定运行的Java程序所需的类的加载路径。设置Java运行环境变量有命令行和图形界面两种形式,下面分别进行介绍。 1设置Path 2设置Classpath,1.2.3 开发工具介绍,Eclipse是一个流行的针对Java编程的集成开发环境(IDE)。它还可以用作编写其他语言(比如C+和Ruby)的环境,合并各种种类工具的框架,以及

6、创建桌面或服务器应用程序的富客户端平台。Eclipse是开放源代码的项目,可以免费下载。它的官方网址是http:/www.Eclipse.org,目前最新的版本号是3.4。,1.3 第一个Java程序,在全面学习一门编程语言之前,最快的对该语言进行大致了解的方式就是编写一个简单的程序。下面就以第一个Java程序为例,详细介绍Java程序的编写、编译、运行等过程。,1.3.1 编写程序,配置好程序运行环境后就可以动手编写Java程序了。通过编写第一个简单的Java程序,能够对Java有个快速的体验,也能验证运行环境配置的正确与否。学习一门程序语言,通常都是以一个“HelloWorld”的程序开始

7、。为了让读者能够更深的体会Java程序的编写、执行过程,下面的实例先是采用文本编辑器编写、命令行方式执行。最后将会介绍使用Eclipse编写该实例的过程。,1.3.2 编译、运行,程序编写完成后,在执行前首先需要进行编译。编译Java源程序需要使用Javac命令程序。命令行方式编译、运行Java源程序的步骤如下所示。,1.3.3 使用Eclipse编写、执行程序,在掌握了用命令行方式编译、执行程序的方法后,下面详细介绍一下如何使用Eclipse编写、执行上面列举的HelloWorld程序。,1.3.4 程序结构说明,第一个Java程序比较简单,但毕竟是一个完整的程序,能够正确执行。下面对这个程

8、序的整个结构做个简单说明,以便对Java程序结构有个最初步的简单认识。 01 public class HelloWorld /定义类HelloWorld 02 /定义main()方法 03 public static void main(String args) 04 System.out.println(“Hello World!“); /输出字符串 05 06 ,1.3.5 Java程序调试技巧,程序调试是程序开发过程中很重要的一项工作,即时熟练的开发人员也是如此。不过,对于初学者来说有时更容易犯一些入门级的错误。很小的一个错误往往使初学者费尽周折,为此花费大量精力。下面给出一些编写程序

9、过程中经常遇到的一些问题及调试技巧,以便在遇到问题时能够快速饩觥 1Path、Classpath的问题 2注意大小写 3主文件名与类名一致 4全角与半角 5使用Eclipse调试程序,1.6 小结,本章介绍了Java语言的发展、特点、运行环境等方面内容。另外,通过一个实例程序演示了Java程序的编写、编译、执行、调试过程。本章的重点是掌握Java程序运行环境的搭建。从下一章开始,本书将全面展开Java语言具体内容的学习。,1.7 本章习题,1. Java语言都有哪些特点?按应用领域来分,有哪些版本? 2. 如何搭建Java程序的运行环境? 3. 什么是Classpath,该如何设置?,第2章

10、简单数据类型及运算,在Java语言中定义了一组简单数据类型,这些数据类型是构成其他数据类型的基础。简单数据类型类似结构化编程语言中的数据类型。定义了数据类型的变量与常量,与运算符进行组合,可以形成各种复杂的表达式,从而构成程序中的基本运算单元。在各种编程语言中,可以说数据类型、运算符及表达式等都是程序基础。会同标识符、关键字、变量与常量,这些基础知识又互相衔接,密不可分。本章针对这些基础知识逐一详细介绍。,2.1 标识符与关键字,程序中的标识符与关键字都具有一定的含义。标识符是用户定义的程序中类、变量、常量、方法等的标识,关键字是语言本身留作特殊用途的专用符号。关于标识符与关键字的具体知识,下

11、面分别进行介绍。,2.1.1 标识符,标识符是指程序中类、变量、常量、方法等的名字。类、变量、常量、方法等进行定义和引用时需要利用一定的标识进行识别,这就需要使用标识符。标识符的命名必需符合一定的规范,Java语言的标识符命名规则如下。 首字符必需是字母、下划线_、美元符号$、或者人民币符号¥。 标识符由数字09、大写字母AZ、小写字母az和下划线_、美元符号$以及所有在十六进制0xc0前的ASCII码等组成。 不能把关键字和保留字作为标识符。 标识符对大小写敏感,也就是需要区分大小写。 标识符没有长度限制。,2.1.2 关键字,语言本身专门使用的标识符为关键字,在程序代码中有其特殊的含义。J

12、ava常用的关键字有package、class、interface、public、private、protected、default、int、byte、double、boolean、char、if、else、while、switch、case、do、break、continue、try、catch、finally、throw、throws、new、this、super等。所有的关键字都为小写,每个都有其特殊的作用,比如: 用于包、类、接口定义:package、class、interface。 访问控制修饰符:public、private、protected、default。 数据类型:int、

13、byte、double、boolean、char。 关于流程控制:if、else、while、switch、case、do、break、continue。 关于异常处理:try、catch、finally、throw、throws。 创建对象:new。 引用:this、supe。,2.2 基本数据类型,程序中的主要数据元素为变量与常量,每一个变量与常量必须属于一种数据类型。数据类型指定了该类数据所占内存空间的大小、取值范围及其可以进行的操作。Java语言中的数据类型可分为基本数据类型和复合数据类型。基本数据类型可称为“原始数据类型”,是其他数据类型的基础。复合数据类型以基本数据类型为基础,通常

14、以类的形式进行封装。复合数据类型的概念后续章节会详细说明。基本数据类型主要包括布尔类型、字符型、整型、实型,下面分别进行介绍。,2.2.1 布尔类型,布尔类型用关键字boolean表示,只有true和false两个值。布尔类型通常用在流程控制中进行逻辑判断。布尔型数据在机器中占1个字节,系统默认初始值为false。,2.2.2 字符型,字符型用关键字char表示。Java中的字符属于Unicode编码(一种类似于ASCII码的国际标准编码,采用二字节编码)。由于计算机底层只能处理二进制数据,要想使用字符,就需要对字符进行编码,转换成一系列二进制数来表示特定的字符。目前有多种编码字符集,如Uni

15、code、ISO-8859-1、GBK、ASCII等。不同的字符集收录的字符不尽相同,Unicode属于国际标准字符集,收录了世界上所有各国语言文字的字符。字符型数据在机器中占2个字节,默认初始值为u0000。,2.2.3 整型,整型用来表示不含小数部分的数字。Java语言中共有四种整数类型,分别是byte、short、int和long。这四种整数类型占用的内存空间各不相同,从而取值范围也不同。,2.2.4 实型(浮点型),实型用来表示含有小数的数字。Java语言中共有float和double两种实数类型。这两种实数类型占用的内存空间、取值范围各不相同。,2.2.5 数据类型转换,在程序编写过

16、程中,不同数据类型的变量之间经常需要赋值或运算,这就需要进行数据类型转换。各种数据类型根据分配空间大小、取值范围不同,划分为一定的优先级关系。再根据优先级,数据类型转换分为自动类型转换和强制类型转换。 1自动类型转换 2强制类型转换,2.3 运算符与表达式,运算符与表达式的概念是紧密联系在一起的。运算符与操作数组成表达式来完成相应的运算。不同类型的运算符,组成不同的表达式,可以完成不同类型的运算。表达式是具有确定值的语句,由操作数和各种运算符按照一定的规则组成。表达式的值可以作为操作数,进而形成更复杂的表达健Java语言中的运算符主要包括如下类别: 算术运算符。 赋值运算符。 关系运算符。 逻

17、辑运算符。 位运算符。 条件运算符。,2.3.1 算术运算符及表达式,算术运算符和操作数组成算术表达式,完成基本的算术运算。算术运算符按照操作数的个数可以分为二元运算符和一元运算符,下面分别进行介绍。 1二元算术运算符 2一元算术运算符,2.3.2 赋值运算符及表达式,由赋值运算符组成的表达式为赋值表达式。赋值运算符只有一个,即=。赋值运算符用于运算符右边的值赋值给左边的变量。,2.3.3 关系运算符及表达式,由关系运算符及两个操作数组成关系表达式。关系运算符都是二元运算符,用来比较两个操作数,执行结果为布尔型。关系运算符共有六种,分别是(大于)、=(大于等于)、=(小于等于)=(等于)和!=

18、(不等于)。关系表达式的语法格式如下所示。 operation1 Operator operation2 其中,参数operation1表示第一个操作数。参数Operator表示关系运算符。参数operation2表示第二个操作数。,2.3.4 逻辑运算符及表达式,由逻辑运算符及操作数组成逻辑表达式。逻辑运算符共有三个,分别是&(逻辑与)、|(逻辑或)和!(逻辑非)。其中&(逻辑与)、|(逻辑或)是二元运算符,!(逻辑非)是一元运算符。逻辑表达式的操作数都必须为布尔型,执行结果也为布尔型。,2.3.5 位运算符及表达式,位运算是指将操作数以二进制位的形式进行运算。位运算的操作数只能是整数类型。

19、位运算符共有七个,分别是(位右移)、(无符号位右移)、&(按位与)、|(按位或)、(按位异或)和(按位取反)。其中前六项均为二元运算符,而(按位取反)是一元运算符。,2.3.6 条件运算符及表达式,条件运算符为三元运算符,由条件运算符和三个操作数组成三元条件表达式。三元条件表达式运算时首先判断条件式(第一个操作数,为布尔型)的值,如果为true,则整个表达式的结果为冒号前的值,否则为冒号后的值。三元条件表达式的语法格式如下所示。 operation1 ? operation2 : operation3 其中,参数operation1表示第一个操作数,值必需为布尔类型,可以为表达式。参数oper

20、ation2表示第二个操作数,当第一个操作数的值为true时,其值作为表达式的结果。参数operation3表示第三个操作数,当第一个操作数的值为false时,其值作为表达式的结果。,2.3.7 运算符的优先级,最简单的表达式是一个变量或常量,变量或常量的值就是表达式的值。前面讲过,表达式的值可以作为操作数,从而组成更加复杂的表达式。复杂的表达式中往往包含多个运算符,它们的计算需要有一定的先后顺序,这就是运算符的优先级。,2.4 变量与常量,变量与常量是程序中的基本数据元素。变量代表运行过程中值可以改变的数据,常量代表运行过程中值恒定不变的数据。关于变量与常量的具体知识,下面分别进行介绍。,2

21、.4.1 定义变量,变量是编程语言中十分重要的概念,代表一定的存储空间,里面用来存储相应数据。类中的变量用来表示类的属性,在程序运行过程中,变量所对应的值是可以变化的。定义变量的语法如下所示。 type Variablename = initialvalue; 其中,参数type表示变量的类型,可以是基本类型,也可以是复杂类型。关于数据类型,下面会详细说明。参数Variablename表示变量名称,需要符合标识符的命名规范。参数=为赋值运算符,这里用于初始化,运算符的概念后续章节会详细说明。参数initialvalue表示初始化值。,2.4.2 变量的作用域,变量的作用域规定了变量能被使用的范

22、围,只有在作用域范围内,变量才能够被调用。作用域在变量声明时即被指定。根据作用域的不同,变量可以分为不同的类型:类变量、局部变量、方法参数变量、异常处理参数变量。下面分别对这几类变量进行详细介绍。 1类变量 2局部变量 3方法参数变量 4异常处理参数变量,2.4.3 定义常量,常量可以说是一种特殊的变量,一旦初始化以后,不能再对其进行赋值。也就是说,常量在初始化后,其值不再改变,只能进行访问。定义常量的语法如下所示。 final type Constantname = initialvalue; 其中,参数final为关键字,代表不可更改。参数type表示常量的类型。参数Constantnam

23、e表示常量名称,可以任意取,不过需要符合标识符的命名规范。参数=为赋值运算符,这里用于初始化,运算符的概念后续章节会详细说明。参数initialvalue表示初始化值。,2.5 本章实例,本章主要讲解了简单数据类型及各种运输符与表达式,还有变量与常量的定义。下面给出一个较完整的实例,进一步加深掌握本章内容。 1编写程序 2程序说明 3执行结果,2.8 小结,本章首先介绍了Java语言中标识符与关键字、变量与常量的知识。然后重点讨论了各种基本数据类型,又讨论了各种运算符及相应表达式,最后给出了一个完整的实例。其中,变量的作用域是本章的难点,需要在编程过程中多加体会。下一章将以本章为基础,讲解有关

24、程序流程控制方面的内容。,2.9 本章习题,1举例说明什么是非法的标识符 2定义两种不同数据类型的变量,完成它们之间的类型转换 3二元运算符都有哪些?一元运算符又有哪些? 4定义一个公式,能够根据摄氏温度计算出华氏温度。已知,华氏温度转化为摄氏温度的计算公式为:C = (F - 32) * 5/9。其中,C代表摄氏温度,F代表华氏温度。,第3章 流程控制,为了解决现实问题,程序的执行流程应该是多种多样的。流程应该既可以自上而下的顺序执行,又应该能够遇到某些条件进行跳转,还应该能够对某些操作重复执行。为了控制程序的执行流程,需要使用流程控制语句。流程控制主要包括顺序结构、选择结构、循环结构以及跳

25、转语句,本章针对这些基础知识逐一详细介绍。本章包括以下知识点。 顺序结构; 选择结构; 循环结构; 跳转语句; 注释语句。,3.1 顺序结构,顺序结构是程序中最常见的流程结构,语句按照出现的先后顺序自上而下执行。顺序语句执行的过程中没有跳转和判断,直到程序执行结束为止。,3.2 选择结构,选择结构也称为分支结构,根据一个判断表达式的结果选择不同的分支语句执行。选择结构提供了程序跳转机制,根据选择的结果,有些语句可能被跳转过去不被执行。选择结构主要包含两种语句,if语句和switch语句,下面分别进行介绍。,3.2.1 if语句,If语句是最经常使用的选择结构。它包含两个分支,根据指定布尔类型表

26、达式的结果true或false,选择不同的分支执行。If语句根据复杂程度,可以具有多种形式,如if、if-else、if-else-if。下面分别进行介绍。 1if形式 2if-else形式 3if-else-if形式,3.2.2 switch语句,switch语句属于多分支结构,通常可以替代复杂的if-else-if形式的语句。switch语句根据表示的值选择一个分支来执行,表达式的结果类型只能为byte、short、int或char型。switch语句的语法格式如下所示。 switch (表达式) case value1: /处理语句1 break; case value2: /处理语句2

27、 break; case value3: /处理语句3 break; default: /处理语句n ,3.3 循环结构,要重复执行一段代码,需要使用循环结构。循环结构可以重复执行指定的处理语句,直到不再满足循环条件为止。循环结构主要有for和while两种循环语句,下面分别进行介绍。,3.3.1 for循环语句,for语句通常用于重复次数确定的循环。for循环的语法格式如下所示。 for (初始化;循环条件;迭代部分) 循环体 其中,参数for为关键字。参数“初始化”表示循环的初始化语句,只在循环开始前执行一次,通常用于迭代变量的定义。参数“循环条件”为布尔类型表达式,结果为true时执行循

28、环体,结果为false时结束循环体。参数“迭代部分”在循环体执行完毕时执行。执行完迭代部分,再次判断循环条件,如此反复执行,直到循环条件不再满足。,3.3.2 while循环语句,while语句通常用于重复次数不确定的循环。该语句包含两种形式,while形式和dowhile形式。下面分别进行介绍。 1while形式 2dowhile形式,3.3.3 多重循环,各种循环语句可以嵌套使用,从而构成更加复杂的多重循环。比如for语句中还有for语句,while语句中还有while语句,for语句中包含while语句等。,3.4 跳转语句,要进行流程跳转,需要使用跳转语句。Java语言包括三种跳转语句

29、,分别是break、continue、return,下面分别进行介绍。,3.4.1 break语句,在switch语句中,break语句用于结束switch语句的执行。这在上面switch章节已经介绍,在此不再赘述。在循环结构中,break用于强行终止循环。,3.4.2 continue语句,continue语句用于循环结构中,作用是跳过本次循环,执行下一次迭代。,3.4.3 return语句,return语句用于终止当前方法运行,返回到调用该方法的语句处。如果方法需要有返回值,return语句后就应该提供相应返回值。有关方法的概念,在后续章节中会详细介绍。,3.5 注释语句,在介绍了Java

30、语言的流程控制语句之后,现在来介绍一下Java程序中注释的使用。在Java程序的任意位置都可以加入注释语句,Java编译器会忽略这些注释语句。Java语言主要包括单行和多行两种注释,下面分别进行介绍。,3.5.1 单行注释,在Java程序中使用“/”符号来进行单行注释。从“/”符号开始,到本行结束的所有字符均被编译器作为注释而忽略。,3.5.2 多行注释,多行注释的方法是以“/*”符号为开头,以“*/”为结尾,中间为注释的内容。注释的内容没有数量限制,可以为任意多行数目,当然也可以是单行。,3.6 本章实例,意大利著名数学家列奥纳多斐波纳契曾经在其著作算法之书中提出了“著名的兔子问题”:有一对

31、兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 答案是一组非常特殊的数字,即:1、1、2、3、5、8、13、21、34以上这些数字就是著名的“斐波纳契数列”。 1编写程序 2程序说明 3执行结果,3.7 上机实践,1编写程序,实现求解以下分段函数: y= 2编写程序,用*号打印出金字塔图形,3.8 小结,本章介绍了Java语言中的各种流程控制语句,包括选择结构的if/switch语句,循环结构的for/while语句及程序跳转语句break、continue、return。另外还介绍了注释语句的使用方法。本章最后给

32、出了一个完整的实例。其中各种控制语句的综合运用是本章的难点。在编写程序解决现实问题时,常常需要综合运用各种流程控制语句,从而实现较复杂的处理逻辑。在掌握了基本语法后,读者应该多学习一些相关的算法知识,从而能够解决更加复杂地问题。下一章将介绍Java语言面向对象编程中类和对象的相关知识。,3.9 本章习题,1. 某市不同车牌的出租车3km的起步价和计费分别为:夏利5元,3km以外2.1元/km;富康8元,3km以外2.4元/km;桑塔纳10元,3km以外2.7元/km。分别用if语句和switch语句编程实现:根据乘车的车型及行车公里数输出应付车资。 2. 用循环实现求100的阶乘。 3. br

33、eak语句和continue语句的区别是什么?,第4章 类与对象,类与对象是进行面向对象编程的基础。类是具有相同属性特征和行为规则的多个对象的一种统一描述,对象是对类的实例化。在Java语言中,类是一种最基本的复合数据类型,是组成Java程序的基本要素。下面详细介绍Java语言中有关类与对象的定义方法。本章包括以下知识点。 类的创建; 创建类的成员及方法; 关键字this; 对象的创建、使用及清除。,4.1 创建类,面向对象的编程从创建类开始。创建了类,才谈得上封装、继承、多态,才能实例化生成对象。类的整体结构主要包括声明和类成员两大部分。本节详细介绍如何声明类及类成员的访问控制。,4.1.1

34、 声明类,要使用一个类,必须先声明类。声明类就是创建一种新的数据类型,利用声明的类可以定义类实例,也就得到了一个对象。声明类的语法如下所示。 public abstract | final class extends implements /类主体 其中,参数public、abstract、final表示类修饰符是可选项,下面会详细说明。参数class是关键字。参数Classname表示类名。参数extends Classname表示继承自其他类。参数implements Interface表示实现了某些接口。继承和接口方面在后续章节会详细介绍。,4.1.2 类成员的访问控制,对于类的成员,不

35、管是成员变量还是成员方法,都有一定的访问控制权限。访问控制权限限定了指定对象可以被访问的范围。类成员的访问控制符有public、private、protected和default。 public:用public修饰的成分表示是公有的,也就是它可以被其他任何对象访问(前提是对类成员所在的类有访问权限)。 private:类中限定为private的成员只能被这个类本身访问,在类外不可见。 protected:用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。 default:public、private、protected这三个限定符不是必须写的。如果不写则表明是default

36、,相应的成分可以被所在的包中各类访问。,4.2 创建类的成员,类的成员变量定义了类的属性。所定义的成员变量,可以被类内的所有方法访问。比如,如果把电视机看作一个类,则电视机的颜色就是这个类的一个成员变量。该变量用来描述电视机的颜色。声明成员变量的语法如下所示。 public | protected | private static final transient volatile type variableName; 其中,参数public、private、protected表示成员变量的访问权限。参数static表示限定该成员变量为类变量。参数final表示声明为常量。参数transient

37、表示声明为暂时性变量。参数volatile表示声明一个共享变量。参数type表示变量的类型。参数variableName表示变量名称。,4.3 创建类的方法,除了成员变量,方法也是类的重要成员。成员方法描述了对象所具有的功能或操作,反映对象的行为,是具有某种相对独立功能的程序模块。本节详细介绍如何创建类的方法以及类的特殊方法,即构造方法和main()方法。,4.3.1 定义类的成员方法,成员方法描述对象所具有的功能或操作,反映对象的行为,是具有某种相对独立功能的程序模块。它与过去所说的子程序、函数等概念相当。一个类或对象可以有多个成员方法,对象通过执行它的成员方法对传来的消息作出响应,完成特定

38、的功能。成员方法一旦被定义,便可在不同的程序段中多次调用,故可增强程序结构的清晰度,提高编程效率。 1成员方法的返回值 2形式参数与实际参数 3方法体中的局部变量,4.3.2 构造方法,Java中的每个类都有构造方法,它是类的一种特殊的方法。构造方法用来初始化类的一个新的对象。它必须具有和类名相同的名称,而且不指出返回类型,它的默认返回类型就是对象类型本身。每个类可以具有多个构造方法,它们各自包含不同的方法参数。构造方法的语法如下所示。 public abstract|final class extends implements Classname(paramList); /定义构造方法 Cl

39、assname(paramList); /定义其他构造方法 /类主体 其中,类声明部分的参数在前面已经介绍。最大的特点是存在一到多个与类同名的方法,这些方法就是构造方法。,4.3.3 main()方法,main()方法是Java程序执行的入口。作为application执行的Java程序,有且只能有一个类具有main()方法。main()方法定义的语法如下所示。 public static void main(String args) /方法体 其中,访问控制权限是公有的(public),并且是类的静态成员方法(static),没有返回值(void)。这些特性对main()方法来说是指定的且不

40、能改变的。main()方法具有一个字符串数组参数,用来接收执行Java程序时的命令行参数。命令行参数作为字符串,按照顺序依次对应字符串数组中的元素。,4.3.4 方法的可变参数,以上几节介绍了类中方法的创建。在具体实际开发过程中,有时方法中参数的个数是不确定的。为了解决这个问题,在J2SE 5.0 版本中引入了可变参数的概念。声明可变参数的语法格式如下所示。 methodName (paramList,paramTypeparamName) 其中,参数methodName表示方法名称。参数paramList表示方法的固定参数列表。参数paramType表示可变参数的类型。参数是声明可变参数的标

41、识。参数paramName表示可变参数名称。可变参数必须定义在参数列表的最后。,4.4 关键字this,在示例4-4中,出现了Java关键字this。this是Java语言中一个特殊的关键字,用来代表当前对象。关键字this是与对象密切相关的,在容易混淆的地方使用this会使程序设计变得规范、简单、灵活。,4.5 对象,对象是对类的实例化。对象具有状态和行为,变量用来表明对象的状态,方法表明对象所具有的行为。Java对象的生命周期包括创建、使用和清除。本节详细介绍对象的整个声明周期过程。,4.5.1 对象的创建,要使用一个对象,首先要创建它。通常创建对象的语法如下所示。 type object

42、Nmae = new type(paramList); 其中,参数type表示对象的类型。参数objectName表示对象的名称。参数new为Java的关键字,下面会详细介绍。参数type(paramList)是对类型type构造方法的调用。,4.5.2 对象的使用,对象定义好了之后,才可以使用对象。对象的使用即是调用对象的变量或方法。使用对象的语法如下所示。 objectNmae.memberVariableName /调用对象的变量 objectNmae.memberMethodName /调用对象的方法 其中,参数objectNmae表示对象的名称。参数memberVariableNam

43、e表示对象的成员变量名称。参数memberMethodName表示对象的成员方法名称。,4.5.3 对象的清除,对象使用完之后需要进行对象的清除。对象的清除是指释放对象占用的内存。在创建对象时,用户必须使用new操作符为对象分配内存。不过,在清除对象时,由系统自动进行内存回收,不需要用户额外处理。这也是Java语言的一大特色,某种程度上方便了程序员对内存的管理。 Java语言的内存自动回收称为垃圾回收(Garbage Collection)机制,简称GC。垃圾回收机制是指JVM用于释放那些不再使用的对象所占用的内存。Java语言并不要求JVM有GC,也没有规定GC如何工作。不过常用的JVM都有

44、GC,而且大多数GC都使用类似的算法管理内存和执行收集操作。具体的垃圾收集实现策略有好多种,在此不再详细赘述。,4.6 本章实例,在开发某图书管理系统时,其中有三个类,即图书类Book、图书类别类BookType和图书管理类BookManager。图书类Book用于管理图书本身的相关信息,包括编号、书名、作者、出版社等;图书类别类BookType用于表示图书分类,包括类别编号、类别名称等;图书管理类BookManager用于管理所有图书,主要是针对数据库进行操作,包括增加、删除、修改等。下面是这几个类的类图及源代码。,4.7 上机实践,1编写程序,创建一个汽车类(Car)。该类包含颜色和型号属

45、性,并为其创建两个构造函数: 第一个为无形参的构造函数,其过程是将颜色和型号初始化为红色轿车。 第二个须定义两个形参,并将形参的值分别赋给颜色和型号。 另外,为该类创建两个方法,分别用来获得颜色和型号。在该类中定义一个main()方法,分别用上面的两个构造函数创建两个对象,并显示相关对象的各个属性。 汽车类(Car)类图如图4-8所示。,4.8 小结,本章介绍了Java语言面向对象编程中有关类与对象的相关知识。主要包括类及成员变量、成员方法的创建,以及对象的创建、使用、清除等方面的知识。本章最后给出了一个完整的实例。其中类的成员变量、成员方法的定义和使用是本章的难点。在实际编程过程中,应该多通

46、过具体实例加深理解。下一章徊缴钊虢樯Java语言面向对象编程方面的知识,包括类的继承、封装、多态以及接口和包等。,4.9 本章习题,1定义一个类,包含成员变量、构造方法、成员方法。 2构造方法与成员方法有哪些不同? 3类和对象之间是什么关系,用具体实例说明如何创建一个类的对象。,第5章 深入面向对象编程,除了基本的类和对象,Java语言的面向对象编程还包括抽象类、接口、内部类、包等高级特性。通过对这些高级特性的支持,Java语言全面实现了面向对象的编程。下面进一步深入介绍Java语言面向对象编程方面的知识。本章包括以下知识点。 类的封装、继承、多态; 抽象类与接口; 内部类及匿名内部类; 包的

47、创建及使用。,5.1 类的封装、继承与多态,上一章介绍了有关类定义的基本知识。面向对象中的类还具有封装、继承与多态的特性,这也是面向对象编程所具有的重要特点。Java语言对类的封装、继承、多态均有很好的体现,下面分别进行介绍。,5.1.1 封装,封装是指隐藏对象的属性及实现细节,对外仅提供接口可见。封装实现了信息隐藏,有利于软件复用。这种技术带来的好处是达到了模块化的标准,从而提高了代码的复用程度。在某种程度上,封装也大大改善了软件开发的可维护性,降低了构建复杂软件系统的风险。 在Java语言中,对象的属性和方法均可以进行访问控制。使用前面介绍的访问控制修饰符public、private、pr

48、otected、default,可以实现不同程度的信息封装。下面通过一个具体的示例来介绍Java语言中封装的实现。,5.1.2 继承,继承是指一个类是从另一个类派生而来,派生类自动具有了被继承类的所有特性。其中被继承的类称为“父类”,继承父类的类称为“子类”。继承可以使子类具有父类的各种属性和方法,而不需要再次编写相同的代码。继承也极大地促进了软件的复用,而且继承的形式可以更加复杂。Java语言中类继承的语法格式如下所示。 class ClassName extends SuperClassName /类体 其中,参数class是关键字。参数Classname表示类名,可以由用户任意定义,但需

49、要符合Java标识符的命名规范。参数extends是关键字,表示该类继承自其他类。参数SuperClassName表示被继承的父类的名字,可以由用户任意定义,但需要符合Java标识符的命名规范。,5.1.3 多态,多态是指对于一种服务功能,可以具有不同的实现方式,即多种形态。多态形象的描述了现实世界的复杂形态,使程序具有良好的扩展性。在继承的基础上,方法重载是实现多态的方式之一。,5.2 抽象类与接口,抽象类是Java语言中一种特殊的类,其中包含只进行了声明没有具体实现的抽象方法。而接口更像是一种特殊的抽象类,其中所有方法都只进行了声明没有具体实现。抽象类和接口有着相似之处,不过也有许多区别。下面分别对它们进行详细地介绍。,5.2.1 抽象类,抽象类是指包含了抽象方法的类。其中,抽象方法是一种只声明了方法名称,而没有指明方法体的方法。当需要表示对问题域进行分析、设计中得出

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1