Java教材课件05Java面向对象程序设计.ppt
《Java教材课件05Java面向对象程序设计.ppt》由会员分享,可在线阅读,更多相关《Java教材课件05Java面向对象程序设计.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章 Java面向对象程序设计1教学目的要求n理解理解java语言的面向对象技术,包括面向对象语言的面向对象技术,包括面向对象的基本概念、面向对象的程序设计方法;的基本概念、面向对象的程序设计方法;n理解理解java中的类、包、对象、抽象类、接口和中的类、包、对象、抽象类、接口和面向对象的特性;面向对象的特性;n掌握掌握Java语言中类、方法和接口的基本定义及语言中类、方法和接口的基本定义及使用方法;使用方法;n了解包的概念及打包和引入方法;了解包的概念及打包和引入方法;n通过技能实训通过技能实训,掌握一般掌握一般Java程序的面向对象程序的面向对象编程方法编程方法,达到熟练开发达到熟练开发
2、Java一般程序的目的。一般程序的目的。2本章内容本章内容n5.1类类n5.2访问控制符与封装访问控制符与封装n5.3继承继承n5.4非访问控制符接口非访问控制符接口n5.5Java的名字空间和包的名字空间和包n5.6接口接口35.1 类n面向对象回顾面向对象回顾n5.1.1类的定义类的定义n5.1.2类的使用类的使用n5.1.3方法重载方法重载n5.1.4内部类内部类4面向对象回顾(面向对象回顾(1)-基本思想基本思想n面向对象的基本思想面向对象的基本思想面向对象是一种新兴的程序设计方法面向对象是一种新兴的程序设计方法,或者是一种或者是一种新的程序设计规范新的程序设计规范(paradigm)
3、,其基本思想是使用对象、其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。类、继承、封装、消息等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。其应用问题所涉及的业务范围称作该软件的问题域。其应用领域不仅仅是软件,还有计算机体系结构和人工智能领域不仅仅是软件,还有计算机体系结构和人工智能等
4、。等。5面向对象回顾(面向对象回顾(1)-基本思想基本思想n1对象的基本概念对象的基本概念对象是系统中用来描述客观事物的一个实体,它是构成系统的对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。服务组成。主动对象是一组属性和一组服务的封装体,其中至少有主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行(称作主动服务)。一个服务不需要接收消息就能主动执行(称作主动服务)。n2类的基本概念类的基本概念类是具有相同属性和服务的一组对象的集合
5、,它为属于该类的所类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。有一个类名并包括属性说明和服务说明两个主要部分。n3消息消息消息就是向对象发出的服务请求,它应该包含下述信息:提供服务消息就是向对象发出的服务请求,它应该包含下述信息:提供服务的对象标识、服务标识、输入信息和回答信息。服务通常被称为方的对象标识、
6、服务标识、输入信息和回答信息。服务通常被称为方法或函数。法或函数。6面向对象回顾(面向对象回顾(2)-基本特性基本特性n1封装性封装性封装性就是把对象的属性和服务结合成一个独立的相同单位,封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义:并尽可能隐蔽对象的内部细节,包含两个含义:把对象的全部属性和全部服务结合在一起,形成一个不可把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。分割的独立单位(即对象)。信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界或者说形成一道屏障
7、,只保留有限的对外接口使之与外边界或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。部发生联系。封装的原则在软件上的反映是:要求使对象以外的部分不能封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的对它的交叉感染交叉感染,使软件错误能够局部化,大大减少查错和排,使软件错误能够局部化,大大减少查错和排错的难度。错的难度。7面向对象回顾(面向对象回顾(2)-基本特性基本特性n2继承性继承性特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对特殊类的对象拥有其一般类的全
8、部属性与服务,称作特殊类对一般类的继承。一般类的继承。一个类可以是多个一般类的特殊类,它从多个一般类中继承了一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这称为多继承。属性与服务,这称为多继承。在在java语言中,通常我们称一般类为父类(语言中,通常我们称一般类为父类(superclass,超类)超类),特殊类为子类,特殊类为子类(subclass)。n3多态性多态性对象的多态性是指在一般类中定义的属性或服务被特殊类继承对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一之后,可以具有不同的数据类型或表现出不同的行
9、为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:几何图形几何图形的的绘图绘图方法,方法,椭圆椭圆和和多边形多边形都是都是几何图几何图的子类,的子类,其其绘图绘图方法功能不同。方法功能不同。8面向对象回顾(面向对象回顾(3)-面向对象方法学面向对象方法学nOOAObjectOrientedAnalysis面向对象的分析面向对象的分析nOODObjectOrientedDesign面向对象的设计面向对象的设计nOOIObjectOrientedImplementation面向对象的实现面向对象的实现95.1.1类的定
10、义类的定义n类是类是java中的一种重要的复合数据类型,是中的一种重要的复合数据类型,是组成组成java程序的基本要素。它封装了一类对程序的基本要素。它封装了一类对象的状态和方法,是这一类对象的原形。一象的状态和方法,是这一类对象的原形。一个类的实现包括两个部分:类声明和类体个类的实现包括两个部分:类声明和类体n1类声明:类声明:类声明中包括关键字类声明中包括关键字Class,类名及类的属性。类名及类的属性。类声明的格式如下:类声明的格式如下:nclassextendsimplements10n同同时时,在在类类声声明明中中还还可可以以包包含含类类的的父父类类(超超类类),类类所所实实现现的的
11、接接口口以以及及修饰符修饰符public、abstract或或final,这些内容将在后面的几节中分别介绍。,这些内容将在后面的几节中分别介绍。n由由类类定定义义可可知知,类类定定义义包包括括关关键键词词class、类类名名和和类类的的属属性性。类类名名是是Java语言合法的标识符,类名一般具有一定的含义。语言合法的标识符,类名一般具有一定的含义。n(1)类定义修饰符类定义修饰符n类类的的说说明明性性修修饰饰符符说说明明类类的的性性质质和和访访问问权权限限,包包括括public、缺缺省省修修饰饰符符、abstract、final。关于修饰符具体含义后面详细介绍。关于修饰符具体含义后面详细介绍。
12、n(2)extendsnextends说明类的父类说明类的父类,一般形式为一般形式为extends父类名父类名Java语言中,语言中,如果在类说明中无如果在类说明中无extends,则隐含地假设其父类为类。,则隐含地假设其父类为类。115.1.1类的定义类的定义n2类类主主体体类主体是是类主体是是JavaJava类的主体部分,完成变量的说明以及方法的定义及类的主体部分,完成变量的说明以及方法的定义及实现。在类中,用变量来说明类的状态,而用方法来实现类的行为。包实现。在类中,用变量来说明类的状态,而用方法来实现类的行为。包含类主体的类结构如下:含类主体的类结构如下:n n n n n通通常常变变
13、量量在在方方法法前前定定义义(并并不不一一定定要要求求),JavaJava语语言言中中没没有有独独立立的的函函数数和和过程,所有的子程序都是作为类方法定义的。如下所示过程,所有的子程序都是作为类方法定义的。如下所示:nclassclassNamenmemberVariableDeclarationsnmethodDeclarations125.1.1类的定义类的定义n3成员变量成员变量成员变量的声明方式如下:成员变量的声明方式如下:public|protected|privatestaticfinaltransientvolatiletypevariableName;/成员变量成员变量其中,其
14、中,static:静态变量(类变量);相对于实例变量静态变量(类变量);相对于实例变量final:常量常量transient:暂时性变量,用于对象存档,用于对象的串行化,见对暂时性变量,用于对象存档,用于对象的串行化,见对象的串行化一节象的串行化一节volatile:贡献变量,用于并发线程的共享贡献变量,用于并发线程的共享135.1.1类的定义类的定义n4成员方法成员方法说明成员方法定义的一般形式为:说明成员方法定义的一般形式为:n 方法修饰符方法修饰符 ()方法体方法体 n方法说明是指出方法返回类型、方法名、访问权限和入口参数。方法说明是指出方法返回类型、方法名、访问权限和入口参数。n方法修
15、饰符方法修饰符n成员方法修饰符主要有成员方法修饰符主要有public、private、protected、final、static、abstract和和synchronized共共7种,前种,前3种的访问权限、说明形式和含义种的访问权限、说明形式和含义与成员变量一致。修饰符说明详见与成员变量一致。修饰符说明详见5.2、5.4节。节。n方法的返回值类型方法的返回值类型nJava语言要求在成员方法说明中必须指明方法返回值的类型,返回值的语言要求在成员方法说明中必须指明方法返回值的类型,返回值的类型为类型为Java语言的任何数据类型。如果一个成员方法不需要返回值,则语言的任何数据类型。如果一个成员方
16、法不需要返回值,则其返回值的类型被说明为其返回值的类型被说明为void。方法返回值用。方法返回值用return语句来实现,如果语句来实现,如果有返回值,那么有返回值,那么return语句要带参数,并且语句要带参数,并且return语句中返回的数据类语句中返回的数据类型必须与方法说明中的方法返回值的类型一致。型必须与方法说明中的方法返回值的类型一致。14n方法名方法名n成成员员方方法法名名是是JavaJava语语言言合合法法的的标标识识符符,为为了了提提高高程程序序的的可可读读性,成员方法名一般具有一定的含义。性,成员方法名一般具有一定的含义。n参数列表参数列表n成成员员方方法法的的参参数数列列
17、表表是是由由逗逗号号分分隔隔的的类类型型及及参参数数名名组组成成,是是可选项。类型可以是可选项。类型可以是JavaJava语言的任何数据类型。语言的任何数据类型。n方法体方法体n方法体是一个方法定义的主要部分,包含了所有实现方法功方法体是一个方法定义的主要部分,包含了所有实现方法功能的能的Java语言程序代码。在方法体中可以定义局部变量,它语言程序代码。在方法体中可以定义局部变量,它的作用域仅在方法体内,当方法被执行结束之后,该方法内的作用域仅在方法体内,当方法被执行结束之后,该方法内部的所有局部变量也就失效了,局部变量不能与参数列表中部的所有局部变量也就失效了,局部变量不能与参数列表中参数名
18、同名。方法体用参数名同名。方法体用“”括起来。括起来。15【例【例5-2】定义一个方法,方法功能为根据参数定义一个方法,方法功能为根据参数r r的大小,返回的大小,返回圆的面积。在类中赋参数圆的面积。在类中赋参数r r,并且输出面积值。,并且输出面积值。public class Li5_02public class Li5_02public static void main(String args)public static void main(String args)double k;double k;Li5_02 mj=new Li5_02();Li5_02 mj=new Li5_02()
19、;k=mj.area(5);k=mj.area(5);System.out.println(k);System.out.println(k);public double area(int r)public double area(int r)/定义定义areaarea方法,带有一个参数方法,带有一个参数final double PI=3.14;final double PI=3.14;/定义常量定义常量PIPI,并赋初值,并赋初值3.143.14return PI*r*r;return PI*r*r;/根据根据r r的值,计算面积后,返回面积值的值,计算面积后,返回面积值 运行结果为运行结果为
20、:78.578.5165.1.1 类的定义n5.构造方法构造方法构造方法是一种特殊的方法,主要用于为类的方法中变量赋构造方法是一种特殊的方法,主要用于为类的方法中变量赋初始值的功能。当用初始值的功能。当用newnew创建一个类的新的对象时,构造方法就立创建一个类的新的对象时,构造方法就立即执行。构造方法名字必须与类名相同。除了构造方法,在类中即执行。构造方法名字必须与类名相同。除了构造方法,在类中不能出现与类名相同的方法。构造方法的语法为:不能出现与类名相同的方法。构造方法的语法为:npublic public 类名(类名(参数列表参数列表)n 语句序列;语句序列;n nJava语言中每个类都
21、有构造方法,如果一个类中没有说明该类的语言中每个类都有构造方法,如果一个类中没有说明该类的构造方法,则系统将提供隐含的不带任何参数的构造方法,这个构造方法,则系统将提供隐含的不带任何参数的构造方法,这个空的构造方法其实什么也不做。一旦我们定义了自己的构造方法,空的构造方法其实什么也不做。一旦我们定义了自己的构造方法,Java编译器就不再添加这种缺省的构造方法。编译器就不再添加这种缺省的构造方法。175.1.1 类的定义n构造方法的特点构造方法的特点:n构造方法没有返回值类型,甚至没有构造方法没有返回值类型,甚至没有voidvoid。其修饰符只能是访问控制。其修饰符只能是访问控制修饰符,即修饰符
22、,即publicpublic、privateprivate、protectedprotected中的任一个。中的任一个。n构造方法不能从父类中继承。构造方法不能从父类中继承。n构构造造方方法法可可以以重重载载,一一个个类类可可以以有有任任意意多多个个构构造造方方法法。不不同同的的构构造造方方法根据参数的不同状态来选择合适的构造方法。法根据参数的不同状态来选择合适的构造方法。n构造方法不能直接通过方法名引用,必须通过构造方法不能直接通过方法名引用,必须通过newnew运算符。运算符。n在构造方法中可以调用当前类和其父类的另一个构造方法,但必须是在构造方法中可以调用当前类和其父类的另一个构造方法,
23、但必须是方法体的第一条语句。使用当前类的构造方法用方法体的第一条语句。使用当前类的构造方法用this来引用,使用其父类来引用,使用其父类的构造方法用的构造方法用super来引用。来引用。185.1.2 对象的使用 n5.1.2.1对象创建对象创建n在在JavaJava语语言言中中,一一个个JavaJava对对象象是是类类的的一一个个实实例例,创创建建一一个个对对象象就就是是创创建建类类的的一一个个实实例例,对对象象即即类类的的实实例例化化。newnew运运算算符符用用于于创创建建一一个个类类的的实实例例并并返返回回对对象象的的引引用用。对对象象创创建建包包括括对对象象声声明明,实实例例化化和和
24、初始化三方面的内容。一般格式为:初始化三方面的内容。一般格式为:ntype type 对象名对象名=new type(=new type(参数列表参数列表);n其其中中typetype为为引引用用组组合合类类型型(包包括括类类和和接接口口)。该该格格式式声声明明了了一一个个类类型型为为typetype的的对对象象。对对象象的的声声明明并并不不为为对对象象分分配配内内存存空空间间。用用运运算算符符newnew为对象分配内存空间,实例化一个对象。比如:为对象分配内存空间,实例化一个对象。比如:nString UserName=new String(“zhangsan”);String UserNa
25、me=new String(“zhangsan”);195.1.2 对象的使用5.1.2.2 对象使用对象使用对对象象的的使使用用包包括括引引用用对对象象的的成成员员变变量量和和方方法法,通通过过运运算算符符“”“”可可以以实实现现对对实实例例变变量量的的访访问问和和实实例例方方法法的的调调用用,变变量量和和方方法法还还可可以以设设定定一一定定的的访访问问权权限限来来允允许许或或禁禁止止其其他他对对象象对对它它的的访访问问。通通常常有有两两种种途径来使用对象:途径来使用对象:1.1.引用对象中的变量引用对象中的变量引用对象的变量的一般形式为引用对象的变量的一般形式为:.2.2.引用对象中的方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 教材 课件 05 面向 对象 程序设计
限制150内