版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三讲
面向对象程序设计---主讲:邓永生Java程序设计第三讲面向对象程序设计---主讲:邓永生Java程序1主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象2一、从日常生活中看对象-类和对象类在面向对象的程序设计中,类是程序的基本单元。类实例化就成为对象。类的实例化指的是创建该类的对象.类的作用就象一个模板,所有对象(实例)依照它来创建。继承多态类对象抽象实例化封装的实体=数据+方法行为属性方法变量一、从日常生活中看对象-类和对象类在面向对象的程序设计中,类3一、从日常生活中看对象-成员类是的一种重要的复合数据类型。基本数据类型:整型,实型(浮点型),布尔型,字符型复合数据类型:类,接口下面看看数据抽象的一个例子——小汽车类class小汽车{int颜色;int车门个数;int极限速度;
void刹车(){…};void加速(){…};void减速(){…};}
计算机中的对象的原型
现实生活一、从日常生活中看对象-成员类是的一种重要的复合数据类型。c4一、从日常生活中看对象-封装封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,实际上是使用对象A对象B方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。数据方法方法私有数据公有数据一、从日常生活中看对象-封装封装把对象的所有组成部分组合在一5一、从日常生活中看对象-继承继承最主要的目的是为了“扩展”原类的功能、加强或改进原类所没有定义的属性和方法狗+颜色+叫()圣伯纳+雪地救人()博美+叫()+玩球()自行车(父类)山地车赛车双人车子类一、从日常生活中看对象-继承继承最主要的目的是为了“扩展”原6一、从日常生活中看对象-多态一个名词有多种语义,一个方法多种功能.参数表不同----方法的重载类派生过程中,重新改写父类的方法----覆盖publicdoublearea(doubler)publicdoublearea(doublea,doubleb)publicdoublearea(doublea,doubleb,doublec)3.02.0,3.03.0,4.0,5.0例如:声明三个同名方法area求圆、矩形、和三角形的面积类一、从日常生活中看对象-多态一个名词有多种语义,一个方法多种7主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象8二、面向对象概念:类与对象我们经常说:物以类聚,人以群分。它反映了人们对客观事物分类管理的思想,要想分门别类地管理好各种事物,必然存在着对客观事物的最基本的认识,对同一种事物要有明显的划分依据,也就是要描述清楚同一种事物共同的基本外观特征(属性)及共同的行为能力(方法)。这个过程可以通过观察、归纳、总结等方式得到对客观事物的共性描述,显然,这是一个把客观事物映象到人脑1、类二、面向对象概念:类与对象我们经常说:物以类聚,人以群分。9二、面向对象概念:类与对象对象就是类所描述的同种事物中实实在在的一个个体。在程序中,当一个对象产生之后就意味着它具有了生命特征,程序中的对象是类的一个实例。2、对象中形成思想认识的抽象思维过程。所以类是对同一种事物(包括外观世界客观存在的、抽象的、有生命的、无生命的)所具有的共性描述,这里的共性包括事物本身的属性特征和基本行为特征。
类本身并没有生命特征,它仅仅是一个针对事物的共性描述,通常以文件的形式保存在各种存储介质上。
在程序中,类以特定的方式(new)被调入到内存中使用,此时存在于内存中的这段类代码就叫做对象,显然,对象与类的代码本质上是完全相同的,只是存储介质不同而已,而且对对象而言,它具有了生命特征(在内存中的生存周期)。更重要的是,在同一个程序中,类可以被多次调入内存形成多个相同的对象,对象之间用不同的对象变量命名得以区分。二、面向对象概念:类与对象对象就是类所描述的同种事物中实实在103、类与对象间的关系二、面向对象概念:类与对象对象类实例化抽象3、类与对象间的关系二、面向对象概念:类与对象对象类实例化抽11主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象12三、类的定义语法如下:[修饰字]class
类名
[extends父类名][implements接口列表]{
类体
}1)、创建类的关键字是“class”2)、类以文件的形式保存在硬盘3)、类的名字必须和文件名相同4)、定义类的类型的关键字有3个:
public、abstract、final5)、类的构造器的名字必须和类名相同6)、方法申明或定义1、定义类成员变量和成员方法。实例实例三、类的定义语法如下:1、定义类成员变量和成员方法。实例实例13三、类的定义1)、在一个类中与类同名的方法叫构造方法,系统在产生对象时会自动执行2)、构造方法通常用于定义一些初值或其他准备工作3)、一个类可以有多个构造函数
(重载),根据参数的不同决定执行哪一个4)、如果程序中没有定义构造方法,则创造实例时使用的是缺省方法,它是一个无内容的空方法2、构造方法:是提供对象初始化的专用方法,不能被显示地直接调用。与类同名而不是与java文件同名。实例三、类的定义1)、在一个类中与类同名的方法叫构造方法,系统在14三、类的定义声明成员方法的格式为:[<修饰符>][static]<返回值类型><方法名>([<参数列表>]){
[<方法体>]
}
其中,〈修饰符〉和成员变量的修饰符一样,含义也相同。例如:
public
void
SetDate(int
y,
int
m,
int
d){...}3、声明或定义类的方法定义在所有方法之外的变量是类的成员变量,定义在方法之内的变量是普通变量。三、类的定义声明成员方法的格式为:3、声明或定义类的方法定义15super指这个对象的父类super()用来调用父类中的方法及变量数据
publicclass
apple
extends
fruits{
publicapple(intprice){
super(price);}
}
以上句子表示使用超类的构造函数生成实例。super必须是子类构造器的第一条语句。三、类的定义4、super与this1)、super还可用super.
调用父类中被隐藏的成员变量和方法。实例super指这个对象的父类三、类的定义4、super与thi16三、类的定义2)、thisthis
指对象自己this
的作用主要是在当前对象中引用自己。如:要将对象自己当作参数,传送给别的对象中的方法。class
ThisClass{
publicstaticvoidmain(
){
Bankbank=newBank(
);
bank.someMethod(this);}}classCircle{
intr;Circle(int
r){
this.r=r;}public
area(
){
return
r*r*3;}}实例实例
this指向当前类的实例本身。静态方法不能使用this关键字,因为静态方法不属于当前类的实例,所以this也就没有什么东西去指向。构造器的this可以指向同一个类中不同参数列表的另外一个构造器。三、类的定义2)、thisthis指对象自己class17主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象18四、面向对象的基本特征面向对象的三大基本特征是:继承、封装、多态。1、继承(inherit)
继承是通过extends让某个类型的对象获得另一个类型的对象的特性的方法。
例如布谷鸟属于飞鸟类,也属于鸟类。可见,子类都具有父类的公共特性。子类不能继承父类中访问权限为private的成员变量和方法;Java不支持多重继承,即一个类从多个超类派生的能力。实例
继承机制使得新类不仅有自己特有的成员变量和方法,而且通常是拥有被继承类(超类)的全部成员变量和方法。
要继承就得创建子类,创建子类语法:[<修饰符>]class<子类名>extends<父类名>{...}四、面向对象的基本特征面向对象的三大基本特征是:继承、封装、19四、面向对象的基本特征2、封装(encapsulation)访问控制符是Java语言控制对方法和变量访问的修饰符。对象是对一组变量和相关方法的封装,其中变量表明了对象的状态,方法表明了对象具有的行为。通过对象的封装,实现了模块化和信息隐藏;通过对类的成员施以一定的访问权限,实现了类中成员的信息隐藏。
private、default、protected、public实例实例四、面向对象的基本特征2、封装(encapsulation)20四、面向对象的基本特征关于变量和方法的访问权限修饰字:
public、protected、private1)、public:
任何其它类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法。2)、protected:
在同一类,同一包可以使用。不同包的类要使用这种变量和方法,必须是该类的子类才可以存取变量或调用方法。3)、private:不允许任何其他类存取和调用。四、面向对象的基本特征关于变量和方法的访问权限修饰字:21四、面向对象的基本特征4)、finalfinal
方法之前,允许继承防止覆盖此方法final
类之前,标是该类不能被继承final
变量之前,定义一个常量静态变量(类变量),声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。声明为static的方法有以下几条限制:它们仅能调用其他的static方法;它们只能访问static数据;它们不能以任何方式引用this或super。5)、static
注意:在一个static方法中引用任何实例变量都是非法的。如果一个成员(属性或方法)被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。通常属于类的公共属性说明成static。四、面向对象的基本特征4)、finalfinal方法之前,22四、面向对象的基本特征成员的可视性描述publicprotected缺省privateyesyesyesyesyesyesyesyesnoyes*nonoyesnonono同一类中同一包中不同包的子类中非子类也不同包修饰符访问规则:public,
private,
protected,
default。四、面向对象的基本特征成员的可视性描述publicpr23四、面向对象的基本特征3、多态(Polymorphism)在Java语言中,多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法覆盖实现的动态多态性(运行时多态)。
1)、编译时多态:在编译阶段,编译器会根据参数的不同来静态确定调用相应的方法,即具体调用哪个被重载的方法。2)、运行时多态:由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。程序中凡是使用父类对象的地方,都可以用子类对象来代替。一个对象可以通过引用子类的实例来调用子类的方法。实例实例实例实例
子孙类中定义的方法和祖先类中某个方法同名、同参数,则祖先类中的该方法被覆盖(overriding)。实例实例
同一个类中多个方法用相同的名称,但参数不同时叫方法重载(overloading)。参数不同是指参数个数不同或参数个数相同时参数的对应位置的数据类型不同。四、面向对象的基本特征3、多态(Polymorphism)在24消息就是一个对象向另一个对象发出的服务请求,它应该包含下述信息:提供服务的对象标识、服务标识、输入信息和应答信息。服务通常被称为方法或函数。
void
与return四、面向对象的基本特征4、消息传递实例
消息传递的四个要素:消息接收对象、接收对象中哪个方法完成指定动作、此方法需要的参数、此方法是否有返回消息。消息就是一个对象向另一个对象发出的服务请求,它应该包含下述信25主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象26五、抽象类、接口实例抽象类是在定义类时用abstract
修饰的类,用abstract
修饰的方法叫抽象方法。一个类中如果有抽象方法,那它一定属于抽象类。抽象类不能够直接用new创建相应的对象,也就是它不能够被实例化,必须通过继承产生子类,再通过子类得到对象。在抽象类中如果有抽象方法,一定要在子类中实现抽象类中的抽象方法。1、抽象类实例五、抽象类、接口实例抽象类是在定义类时用abstract27五、抽象类、接口2、接口Java语言只支持单继承机制,不支持多继承。接口和抽象类非常相似,都是只定义了类中的方法,没有给出方法的具体实现。Java语言不仅规定一个子类只能直接继承自一个父类,同时允许一个子类可以实现多个接口。所以,从本质上讲,Java语言是借助于接口来实现C++的多继承机制的。五、抽象类、接口2、接口Java语言只支持单继承机制,不支持28五、抽象类、接口1)、定义接口接口的定义格式:
〈修饰符〉interface〈接口名〉{...}
〈修饰符〉可以是public,也可以缺省。当为缺省时,接口只能被与它处在同一包中的方法访问;当声明为public时,接口能被任何类的方法访问。
例如:
public
interface
PrintMessage{...}五、抽象类、接口1)、定义接口接口的定义格式:29五、抽象类、接口说明:①接口中定义的所有成员变量都必须设置初值②若接口定义为默认型访问权限,则接口中的成员变量全部隐含为finalstatic型。这意味着它们不能被实现接口方法的类改变,并且为默认访问权限③当接口保存于文件时,其文件命名方法和保存类的文件命名方法类同④一个文件可以包含若干个接口,但最多只能有一个接口定义为public,其他的接口必须为默认⑤类必须实现定义在接口中的所有方法五、抽象类、接口说明:①接口中定义的所有成员变量都必须设置初30五、抽象类、接口2)、接口与抽象类的区别⑥定义类时实现接口用关键字
implements,一个类只能继承一个父类,但可以实现若干个接口⑦接口中的成员变量只能用public、static和final来定义,如果不声明,则默认为publicstaticfinal。类定义的完整格式是:[<修饰符>]
class<类名>[extends<父类名>]
[implements<接口名1>,<接口名2>,...]实例实例五、抽象类、接口2)、接口与抽象类的区别⑥定义类时实现接口用31主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象32六、面向对象设计原则面向对象设计原则三大基本原则:
1、针对接口编程,而不是针对实现编程
2、优先使用对象组合,而不是类继承
3、封装变化点就一个类而言,应该仅有一个引起它变化的原因。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。测试驱动的开发实践常常会在设计出现臭味之前就迫使我们分离职责。(1)、单一职责原则(SRP)六、面向对象设计原则面向对象设计原则三大基本原则:1、针对33六、面向对象设计原则软件实体(类、模块、函数/方法)应该是可扩展的,但不应该是可修改的。也就是说:对于扩展是开放的,对于更改是封闭的。(2)、开闭原则(OCP)子类应当可以替换父类并出现在父类能够出现的任何地方。(3)、替换原则(LSP)①、高层模块不应该依赖于低层模块,二者都应该依赖于抽象。
②、抽象不应该依赖于细节,而细节应该依赖于抽象。(4)、依赖倒置原则(DIP)
在进行业务设计时,与特定业务有关的依赖关系应该尽量依赖接口和抽象类,而不是依赖于具体类。具体类只负责相关业务的实现,修改具体类不影响与特定业务有关的依赖关系。六、面向对象设计原则软件实体(类、模块、函数/方法)应该是可34六、面向对象设计原则采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好。(5)、接口分离原则(ISP)六、面向对象设计原则采用多个与特定客户类有关的接口比采用一个35主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象36七、小结1、类是Java面向对象编程的基本元素,它定义了一个对象的结构和功能2、构造方法3、类继承,this和super4、类变量(static类型)、方法和实例变量、方法5、方法覆盖和重载、抽象类与接口6、面向对象特性7、面向对象设计原则七、小结1、类是Java面向对象编程的基本元素,它定义了一个37七、小结8、本讲还学习了如下关键字:public、protected、private、extends、abstract、interface、implements、static、final、super、this、void、class、return。七、小结8、本讲还学习了如下关键字:public、prote38主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象39八、课程实训实训内容:1、随机生成30个1~200之间的整数,并按由小到大的顺序分别打印出所有的奇数和偶数。2、完成第一题的功能,但要求排序的功能由另一个类来完成。实训目标:八、课程实训实训内容:1、随机生成30个1~200之间的整数40第三讲
面向对象程序设计---主讲:邓永生Java程序设计第三讲面向对象程序设计---主讲:邓永生Java程序41主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象42一、从日常生活中看对象-类和对象类在面向对象的程序设计中,类是程序的基本单元。类实例化就成为对象。类的实例化指的是创建该类的对象.类的作用就象一个模板,所有对象(实例)依照它来创建。继承多态类对象抽象实例化封装的实体=数据+方法行为属性方法变量一、从日常生活中看对象-类和对象类在面向对象的程序设计中,类43一、从日常生活中看对象-成员类是的一种重要的复合数据类型。基本数据类型:整型,实型(浮点型),布尔型,字符型复合数据类型:类,接口下面看看数据抽象的一个例子——小汽车类class小汽车{int颜色;int车门个数;int极限速度;
void刹车(){…};void加速(){…};void减速(){…};}
计算机中的对象的原型
现实生活一、从日常生活中看对象-成员类是的一种重要的复合数据类型。c44一、从日常生活中看对象-封装封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,实际上是使用对象A对象B方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。数据方法方法私有数据公有数据一、从日常生活中看对象-封装封装把对象的所有组成部分组合在一45一、从日常生活中看对象-继承继承最主要的目的是为了“扩展”原类的功能、加强或改进原类所没有定义的属性和方法狗+颜色+叫()圣伯纳+雪地救人()博美+叫()+玩球()自行车(父类)山地车赛车双人车子类一、从日常生活中看对象-继承继承最主要的目的是为了“扩展”原46一、从日常生活中看对象-多态一个名词有多种语义,一个方法多种功能.参数表不同----方法的重载类派生过程中,重新改写父类的方法----覆盖publicdoublearea(doubler)publicdoublearea(doublea,doubleb)publicdoublearea(doublea,doubleb,doublec)3.02.0,3.03.0,4.0,5.0例如:声明三个同名方法area求圆、矩形、和三角形的面积类一、从日常生活中看对象-多态一个名词有多种语义,一个方法多种47主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象48二、面向对象概念:类与对象我们经常说:物以类聚,人以群分。它反映了人们对客观事物分类管理的思想,要想分门别类地管理好各种事物,必然存在着对客观事物的最基本的认识,对同一种事物要有明显的划分依据,也就是要描述清楚同一种事物共同的基本外观特征(属性)及共同的行为能力(方法)。这个过程可以通过观察、归纳、总结等方式得到对客观事物的共性描述,显然,这是一个把客观事物映象到人脑1、类二、面向对象概念:类与对象我们经常说:物以类聚,人以群分。49二、面向对象概念:类与对象对象就是类所描述的同种事物中实实在在的一个个体。在程序中,当一个对象产生之后就意味着它具有了生命特征,程序中的对象是类的一个实例。2、对象中形成思想认识的抽象思维过程。所以类是对同一种事物(包括外观世界客观存在的、抽象的、有生命的、无生命的)所具有的共性描述,这里的共性包括事物本身的属性特征和基本行为特征。
类本身并没有生命特征,它仅仅是一个针对事物的共性描述,通常以文件的形式保存在各种存储介质上。
在程序中,类以特定的方式(new)被调入到内存中使用,此时存在于内存中的这段类代码就叫做对象,显然,对象与类的代码本质上是完全相同的,只是存储介质不同而已,而且对对象而言,它具有了生命特征(在内存中的生存周期)。更重要的是,在同一个程序中,类可以被多次调入内存形成多个相同的对象,对象之间用不同的对象变量命名得以区分。二、面向对象概念:类与对象对象就是类所描述的同种事物中实实在503、类与对象间的关系二、面向对象概念:类与对象对象类实例化抽象3、类与对象间的关系二、面向对象概念:类与对象对象类实例化抽51主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象52三、类的定义语法如下:[修饰字]class
类名
[extends父类名][implements接口列表]{
类体
}1)、创建类的关键字是“class”2)、类以文件的形式保存在硬盘3)、类的名字必须和文件名相同4)、定义类的类型的关键字有3个:
public、abstract、final5)、类的构造器的名字必须和类名相同6)、方法申明或定义1、定义类成员变量和成员方法。实例实例三、类的定义语法如下:1、定义类成员变量和成员方法。实例实例53三、类的定义1)、在一个类中与类同名的方法叫构造方法,系统在产生对象时会自动执行2)、构造方法通常用于定义一些初值或其他准备工作3)、一个类可以有多个构造函数
(重载),根据参数的不同决定执行哪一个4)、如果程序中没有定义构造方法,则创造实例时使用的是缺省方法,它是一个无内容的空方法2、构造方法:是提供对象初始化的专用方法,不能被显示地直接调用。与类同名而不是与java文件同名。实例三、类的定义1)、在一个类中与类同名的方法叫构造方法,系统在54三、类的定义声明成员方法的格式为:[<修饰符>][static]<返回值类型><方法名>([<参数列表>]){
[<方法体>]
}
其中,〈修饰符〉和成员变量的修饰符一样,含义也相同。例如:
public
void
SetDate(int
y,
int
m,
int
d){...}3、声明或定义类的方法定义在所有方法之外的变量是类的成员变量,定义在方法之内的变量是普通变量。三、类的定义声明成员方法的格式为:3、声明或定义类的方法定义55super指这个对象的父类super()用来调用父类中的方法及变量数据
publicclass
apple
extends
fruits{
publicapple(intprice){
super(price);}
}
以上句子表示使用超类的构造函数生成实例。super必须是子类构造器的第一条语句。三、类的定义4、super与this1)、super还可用super.
调用父类中被隐藏的成员变量和方法。实例super指这个对象的父类三、类的定义4、super与thi56三、类的定义2)、thisthis
指对象自己this
的作用主要是在当前对象中引用自己。如:要将对象自己当作参数,传送给别的对象中的方法。class
ThisClass{
publicstaticvoidmain(
){
Bankbank=newBank(
);
bank.someMethod(this);}}classCircle{
intr;Circle(int
r){
this.r=r;}public
area(
){
return
r*r*3;}}实例实例
this指向当前类的实例本身。静态方法不能使用this关键字,因为静态方法不属于当前类的实例,所以this也就没有什么东西去指向。构造器的this可以指向同一个类中不同参数列表的另外一个构造器。三、类的定义2)、thisthis指对象自己class57主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象58四、面向对象的基本特征面向对象的三大基本特征是:继承、封装、多态。1、继承(inherit)
继承是通过extends让某个类型的对象获得另一个类型的对象的特性的方法。
例如布谷鸟属于飞鸟类,也属于鸟类。可见,子类都具有父类的公共特性。子类不能继承父类中访问权限为private的成员变量和方法;Java不支持多重继承,即一个类从多个超类派生的能力。实例
继承机制使得新类不仅有自己特有的成员变量和方法,而且通常是拥有被继承类(超类)的全部成员变量和方法。
要继承就得创建子类,创建子类语法:[<修饰符>]class<子类名>extends<父类名>{...}四、面向对象的基本特征面向对象的三大基本特征是:继承、封装、59四、面向对象的基本特征2、封装(encapsulation)访问控制符是Java语言控制对方法和变量访问的修饰符。对象是对一组变量和相关方法的封装,其中变量表明了对象的状态,方法表明了对象具有的行为。通过对象的封装,实现了模块化和信息隐藏;通过对类的成员施以一定的访问权限,实现了类中成员的信息隐藏。
private、default、protected、public实例实例四、面向对象的基本特征2、封装(encapsulation)60四、面向对象的基本特征关于变量和方法的访问权限修饰字:
public、protected、private1)、public:
任何其它类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法。2)、protected:
在同一类,同一包可以使用。不同包的类要使用这种变量和方法,必须是该类的子类才可以存取变量或调用方法。3)、private:不允许任何其他类存取和调用。四、面向对象的基本特征关于变量和方法的访问权限修饰字:61四、面向对象的基本特征4)、finalfinal
方法之前,允许继承防止覆盖此方法final
类之前,标是该类不能被继承final
变量之前,定义一个常量静态变量(类变量),声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。声明为static的方法有以下几条限制:它们仅能调用其他的static方法;它们只能访问static数据;它们不能以任何方式引用this或super。5)、static
注意:在一个static方法中引用任何实例变量都是非法的。如果一个成员(属性或方法)被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。通常属于类的公共属性说明成static。四、面向对象的基本特征4)、finalfinal方法之前,62四、面向对象的基本特征成员的可视性描述publicprotected缺省privateyesyesyesyesyesyesyesyesnoyes*nonoyesnonono同一类中同一包中不同包的子类中非子类也不同包修饰符访问规则:public,
private,
protected,
default。四、面向对象的基本特征成员的可视性描述publicpr63四、面向对象的基本特征3、多态(Polymorphism)在Java语言中,多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法覆盖实现的动态多态性(运行时多态)。
1)、编译时多态:在编译阶段,编译器会根据参数的不同来静态确定调用相应的方法,即具体调用哪个被重载的方法。2)、运行时多态:由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。程序中凡是使用父类对象的地方,都可以用子类对象来代替。一个对象可以通过引用子类的实例来调用子类的方法。实例实例实例实例
子孙类中定义的方法和祖先类中某个方法同名、同参数,则祖先类中的该方法被覆盖(overriding)。实例实例
同一个类中多个方法用相同的名称,但参数不同时叫方法重载(overloading)。参数不同是指参数个数不同或参数个数相同时参数的对应位置的数据类型不同。四、面向对象的基本特征3、多态(Polymorphism)在64消息就是一个对象向另一个对象发出的服务请求,它应该包含下述信息:提供服务的对象标识、服务标识、输入信息和应答信息。服务通常被称为方法或函数。
void
与return四、面向对象的基本特征4、消息传递实例
消息传递的四个要素:消息接收对象、接收对象中哪个方法完成指定动作、此方法需要的参数、此方法是否有返回消息。消息就是一个对象向另一个对象发出的服务请求,它应该包含下述信65主要内容二、面向对象概念:类与对象三、类的定义四、面向对象的基本特征六、面向对象设计原则
七、小结八、课程实训五、抽象类、接口一、面向对象概念:类与对象主要内容二、面向对象概念:类与对象三、类的定义四、面向对象66五、抽象类、接口实例抽象类是在定义类时用abstract
修饰的类,用abstract
修饰的方法叫抽象方法。一个类中如果有抽象方法,那它一定属于抽象类。抽象类不能够直接用new创建相应的对象,也就是它不能够被实例化,必须通过继承产生子类,再通过子类得到对象。在抽象类中如果有抽象方法,一定要在子类中实现抽象类中的抽象方法。1、抽象类实例五、抽象类、接口实例抽象类是在定义类时用abstract67五、抽象类、接口2、接口Java语言只支持单继承机制,不支持多继承。接口和抽象类非常相似,都是只定义了类中的方法,没有给出方法的具体实现。Java语言不仅规定一个子类只能直接继承自一个父类,同时允许一个子类可以实现多个接口。所以,从本质上讲,Java语言是借助于接口来实现C++的多继承机制的。五、抽象类、接口2、接口Java语言只支持单继承机制,不支持68五、抽象类、接口1)、定义接口接口的定义格式:
〈修饰符〉interface〈接口名〉{...}
〈修饰符〉可以是public,也可以缺省。当为缺省时,接口只能被与它处在同一包中的方法访问;当声明为public时,接口能被任何类的方法访问。
例如:
public
interface
PrintMessage{...}五、抽象类、接口1)、定义接口接口的定义格式:69五、抽象类、接口说明:①接口中定义的所有成员变量都必须设置初值②若接口定义为默认型访问权限,则接口中的成员变量全部隐含为finalstatic型。这意味着它们不能被实现接口方法的类改变,并且为默认访问权限③当接口保存于文件时,其文件命名方法和保存类的文件命名方法类同④一个文件可以包含若干个接口,但最多只能有一个接口定义为public,其他的接口必须为默认⑤类必须实现定义在接口中的所有方法五、抽象类、接口说明:①接口中定义的所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026云南昆明大型企业呼叫中心运营支撑岗位招聘笔试模拟试题及答案解析
- 天津市宁河区供水有限公司招聘3人笔试参考题库及答案解析
- 2026江苏南京体育学院招聘专职辅导员8人考试模拟试题及答案解析
- 2026江西赣州市国投集团新能源人才专场招聘延期笔试备考题库及答案解析
- 2026四川成都市民政精神卫生中心(成都市德康医院)招聘3人笔试备考试题及答案解析
- 2026年电热披萨锅行业分析报告及未来发展趋势报告
- 2026年普热轧开平板行业分析报告及未来发展趋势报告
- 2026四川九洲线缆有限责任公司招聘产品技术岗等岗位4人考试备考试题及答案解析
- 2026年汽车检具标准件行业分析报告及未来发展趋势报告
- 2026年卫浴陶瓷行业分析报告及未来发展趋势报告
- 钢桁架屋面施工方案
- 电力模块施工方案(3篇)
- 雨课堂学堂在线学堂云《烹调工艺学(扬大)》单元测试考核答案
- 康复站立床训练
- 拆除施工安全文明方案
- 树林下裸地绿化施工方案
- 小熊的早晨童话剧课件
- 《机械制图》电子教材
- 2025年湖南省低空经济发展集团有限公司招聘11人笔试参考题库附带答案详解
- 2025年互联网营销师(直播销售员)四级理论考核试题(附答案)
- 碎石加工厂员工安全培训与管理方案
评论
0/150
提交评论