3面向对象编程2.ppt
《3面向对象编程2.ppt》由会员分享,可在线阅读,更多相关《3面向对象编程2.ppt(106页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 面向对象编程面向对象编程面向对象编程面向对象编程n学习目标学习目标n掌握:掌握创建和使用类对象、使用包的基本方法。掌握:掌握创建和使用类对象、使用包的基本方法。n理解:理解面向对象程序设计的基本思想和面向对象理解:理解面向对象程序设计的基本思想和面向对象的概念。的概念。n了解:类的多态,接口的声明及实现方法。了解:类的多态,接口的声明及实现方法。n重点重点n明确各种修饰符的作用,理解继承和复用的概念明确各种修饰符的作用,理解继承和复用的概念n理解父类和子类理解父类和子类n学会学会Java类的定义和对象的创建。类的定义和对象的创建。n难点难点n理解多态性是如何扩充和维护系统性能理解
2、多态性是如何扩充和维护系统性能n类多态的实现。类多态的实现。本讲要点本讲要点面向对象编程面向对象编程面向过程和面向对象面向过程和面向对象 面向过程程序设计示意图面向过程程序设计示意图面向对象程序设计示意图面向对象程序设计示意图1-4面向对象编程面向对象编程3.1面向对象的思想面向对象的思想 n面向对象的基本概念面向对象的基本概念n对象是具有某种特性和某种功能的东西。对象是具有某种特性和某种功能的东西。n将同一种类型的对象归为一个类。将同一种类型的对象归为一个类。n类是对象的抽象,对象是类的实例。类是对象的抽象,对象是类的实例。n类的特征和行为分别命名为属性和方法类的特征和行为分别命名为属性和方
3、法n类类是是对象对象的模板,而的模板,而对象对象是是类类的的实例;实例;n共性与个性的关系,是抽象与具体的关系共性与个性的关系,是抽象与具体的关系。面向对象编程面向对象编程n例如:电视机例如:电视机类类属性:尺寸属性:尺寸颜色颜色型号型号方法:打开方法:打开关闭关闭选择节目选择节目面向对象编程面向对象编程3.1面向对象的思想面向对象的思想n一个类中定义的方法可被该类的对象调用,一个类中定义的方法可被该类的对象调用,对象方法的每一调用被称作发送一个消息对象方法的每一调用被称作发送一个消息message给对象给对象。n对象间是相互独立,通过发送消息相互影响。对象间是相互独立,通过发送消息相互影响。
4、一个消息由三部分组成:一个消息由三部分组成:n(1)消息目标对象;消息目标对象;n(2)执行方法的名字;执行方法的名字;n(3)执行方法所需要的参数(执行方法所需要的参数(parameters)。)。面向对象编程面向对象编程n封装性封装性n封装性就是把对象的属性和方法结合成一个独立的相封装性就是把对象的属性和方法结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节。对外形成一同单位,并尽可能隐蔽对象的内部细节。对外形成一个边界个边界或者说形成一道屏障或者说形成一道屏障,只保留有限的对外,只保留有限的对外接口使之与外部发生联系。接口使之与外部发生联系。n继承性继承性n特殊类的对象拥有其一般类的全
5、部属性与方法,称作特殊类的对象拥有其一般类的全部属性与方法,称作特殊类对一般类的继承特殊类对一般类的继承.一般类为父类(一般类为父类(superclass,超类),特殊类为子类超类),特殊类为子类(subclass)。n多态性多态性n对象的多态性是指在一般类中定义的属性或方法被特对象的多态性是指在一般类中定义的属性或方法被特殊类继承之后,可以具有不同的数据类型或表现出不殊类继承之后,可以具有不同的数据类型或表现出不同的行为。同的行为。面向对象的特点面向对象的特点面向对象三大机制:面向对象三大机制:封装:隐藏内部实现封装:隐藏内部实现继承:复用现有代码继承:复用现有代码多态:改写对象行为多态:改
6、写对象行为面向对象编程面向对象编程3.2类类n类由数据成员和方法组成。类封装了一类对象的状类由数据成员和方法组成。类封装了一类对象的状态和方法态和方法。汽车汽车(类类)品牌品牌型号型号颜色颜色-加速与减速设计加速与减速设计转向设计转向设计刹车设计刹车设计面向对象编程面向对象编程类的声明类的声明n类的修饰符用于说明类的特征和访问权限,包括类的修饰符用于说明类的特征和访问权限,包括public,abstract,final,friendly。public:表示:表示此类为此类为“公共公共”类类;abstract:表示此类为:表示此类为“抽象抽象”类类;final:表示此类为:表示此类为“最终最终”
7、类类.n类名是类名是Java标识符。通常,类名的第一个字母为大写。标识符。通常,类名的第一个字母为大写。类类的的修修饰饰符符classclass类类名名extends extends 父父类类名名 implements implements ,接口名,接口名 成员变量;成员变量;成员方法;成员方法;(简称方法简称方法)类声明类声明类体类体系统定义类系统定义类(系统提供的类系统提供的类):已经定义好的类,可直接使用。:已经定义好的类,可直接使用。用用户户定定义义类类(用用户户自自己己定定义义的的类类):创创建建一一个个新新类类,即即创创建建一一个个新新的数据类型。的数据类型。Java类类面向对象
8、编程面向对象编程n一个一个Java程序可以定义很多个类,但只能有一个程序可以定义很多个类,但只能有一个public类,程序的主类必须是类,程序的主类必须是public类。每个程序类。每个程序都从主类开始执行。都从主类开始执行。面向对象编程面向对象编程nclass,extends,implements都是都是Java关键字。关键字。nclass表明定义类。表明定义类。nextends表明目前定义的类是父类继承而来的子类,该表明目前定义的类是父类继承而来的子类,该父类必须存在。父类必须存在。nimplements表明类要实现某个接口。各接口名之间用表明类要实现某个接口。各接口名之间用逗号逗号“,”
9、分隔。分隔。n类体包含:类体包含:实现类功能的实现类功能的Java语言程序代码、成语言程序代码、成员变量、成员方法。员变量、成员方法。n类的成员变量定义类的成员变量定义:修饰符修饰符 数据类型数据类型 成员变量成员变量=初值初值;n成员变量的修饰符成员变量的修饰符n访问控制修饰符访问控制修饰符public、protected、private;n存在修饰符存在修饰符static、abstract和和final。类的声明类的声明面向对象编程面向对象编程n其中:其中:nfinal:表示该变量不能再被修改,称为常量。:表示该变量不能再被修改,称为常量。例如:例如:finalinta=3;nstatic
10、:表示该变量时静态变量,也称为类变量。:表示该变量时静态变量,也称为类变量。属于这个类的所有对象的变量。而实例变量只属于属于这个类的所有对象的变量。而实例变量只属于某个对象。通过某个对象。通过“类类.变量名变量名”和和“对象对象.变量名变量名”引引用。用。n默认修饰符,如果某个成员变量没有设置访问权限,默认修饰符,如果某个成员变量没有设置访问权限,允许类自身以及在同一个包中的所有类的变量访问。允许类自身以及在同一个包中的所有类的变量访问。面向对象编程面向对象编程nclassExamplenninti;nstaticintj;npublicstaticvoidmain(Stringargs)nn
11、Examplea=newExample();na.j=3;nExample.j=2;na.i=4;nExample.i=5;nn面向对象编程面向对象编程n类的成员方法类的成员方法定义的一般形式为:定义的一般形式为:方法修饰符方法修饰符 ()方法体方法体 n成员方法修饰符成员方法修饰符主要有主要有public、private、protected、final、static、abstract和和synchronized七种七种。n成员方法的返回值类型成员方法的返回值类型n方法返回值用方法返回值用return语句来实现,返回的数据类型必须语句来实现,返回的数据类型必须与与方法说明中的方法返回值类型方法
12、说明中的方法返回值类型一致一致;n如果如果不需要不需要返回值,则其返回值类型被说明为返回值,则其返回值类型被说明为void;类的声明类的声明面向对象编程面向对象编程nfinal:为最终方法,不能在其所在类的子类中被重载,为最终方法,不能在其所在类的子类中被重载,只能被继承,不能被重写。只能被继承,不能被重写。nstatic:不需要初始化该方法所在的类。也不能被它不需要初始化该方法所在的类。也不能被它的子类所重载。的子类所重载。在一个在一个static方法中,只能访问被定义为方法中,只能访问被定义为static的类的类变量和类方法。变量和类方法。nabstract:抽象方法,只有方法说明,没有方
13、法体。抽象方法,只有方法说明,没有方法体。在它所在的类的子类中具体实现。抽象方法所在的在它所在的类的子类中具体实现。抽象方法所在的类称为抽象类。类称为抽象类。nsynchronized:同步方法,在多线程中使用。同步方法,在多线程中使用。面向对象编程面向对象编程n方法名方法名成员方法名是成员方法名是Java语言合法的标识符。语言合法的标识符。n参数列表参数列表成员方法的参数列表是由逗号分隔的类型及参数名组成,成员方法的参数列表是由逗号分隔的类型及参数名组成,是可选项。是可选项。n方法体方法体方法体是一个方法定义的主要部分,包含了所有实现方方法体是一个方法定义的主要部分,包含了所有实现方法功能的
14、法功能的Java语言程序代码,方法体用语言程序代码,方法体用“”括起来括起来。例例3-2:源程序名为:源程序名为TestCir.java;定义一个方法,其功能是;定义一个方法,其功能是根据参数根据参数r的大小,返回圆的面积。的大小,返回圆的面积。运行结果:运行结果:类的声明类的声明面向对象编程面向对象编程publicclassTestCirpublicstaticvoidmain(Stringargs)/main方法方法doublek;TestCirmj=newTestCir();k=mj.area(5k=mj.area(5);System.out.println(k);publicdoubl
15、earea(intr)/定义定义area方法,带有一个参数方法,带有一个参数rfinaldoublePI=3.14;/定义常量定义常量PI为为3.14returnPI*r*r;/由由r的值,计算面积,返回面积值的值,计算面积,返回面积值类的声明类的声明面向对象编程面向对象编程项目任务:n定义一个正方形,它的数据成员包括长和宽,成员定义一个正方形,它的数据成员包括长和宽,成员函数包括设置长和宽的值,求长方形的面积。在主函数包括设置长和宽的值,求长方形的面积。在主方法中定义正方形对象,求长是方法中定义正方形对象,求长是5,宽是,宽是3的面积。的面积。然后再求长是然后再求长是8,宽是,宽是4的面积。
16、的面积。n定义一个职员类定义一个职员类Emplyee(姓名,年龄,性别,薪(姓名,年龄,性别,薪水),一个显示信息的方法,并输出职员信息。水),一个显示信息的方法,并输出职员信息。面向对象编程面向对象编程构造方法构造方法构造方法是一种特殊的方法,其名称与类名相同。构造方法是一种特殊的方法,其名称与类名相同。Java语言中每个类都有构造方法语言中每个类都有构造方法。n构造方法的特点构造方法的特点n构造方法没有返回值类型,没有构造方法没有返回值类型,没有void。其修饰符只能是。其修饰符只能是访问控制修饰符,即访问控制修饰符,即public、private、protected中中的任一个。的任一个
17、。n构造方法不能从父类中继承。构造方法不能从父类中继承。n构造方法可以重载,一个类可以有任意多个构造方法。构造方法可以重载,一个类可以有任意多个构造方法。不同的构造方法根据参数的不同状态来选择合适的构造不同的构造方法根据参数的不同状态来选择合适的构造方法。方法。n构造方法不能直接通过方法名引用,必须通过构造方法不能直接通过方法名引用,必须通过new运算运算符。符。n在构造方法中调用当前类和其父类的构造方法,但必须在构造方法中调用当前类和其父类的构造方法,但必须在方法体的第一条语句。在方法体的第一条语句。面向对象编程面向对象编程n在前一个任务的基础上,构造在前一个任务的基础上,构造3个构造函数。
18、个构造函数。面向对象编程面向对象编程this对象本身对象本身n表示对象本身表示对象本身n在不同方法中表示调用这个方法的对象在不同方法中表示调用这个方法的对象n在构造方法中表示新创建的对象在构造方法中表示新创建的对象n作用作用n使用使用this访问域及方法访问域及方法n使用使用this解决局部变量与成员变量同名解决局部变量与成员变量同名n在构造方法中,用在构造方法中,用this调用另一个构造方法调用另一个构造方法n必须放在第一句必须放在第一句n不能通过不能通过this引用类变量、类方法引用类变量、类方法面向对象编程面向对象编程classPersonStringname;publicvoidex1
19、(Stringname)/name=name;this.name=name;publicvoidex2()ex1(“XMJ”);/?this.ex1(“XMJ”);/?/局部变量与成员变量同名局部变量与成员变量同名publicclassApublicA(inti)publicA(inti,intj)this(5);/第一句第一句/调用另一个构造方法调用另一个构造方法面向对象编程面向对象编程super直接父类直接父类使用使用super访问父类被子类隐藏的同名的成员访问父类被子类隐藏的同名的成员使用父类的构造方法使用父类的构造方法super()必须放在第一句必须放在第一句class A int i
20、;void value()i=10;System.out.println(i);class B extends A int i;void value()i=20;super.value();System.out.println(i);System.out.println(super.i);面向对象编程面向对象编程nthis与与super的区别的区别nthis使用当前类的构造方法,使用当前类的构造方法,super使用其使用其父类的构造方法。父类的构造方法。nthis用以指代一个对象自身,它的作用主要是用以指代一个对象自身,它的作用主要是将自己当成对象作为参数,传送给别的对象将自己当成对象作为参数
21、,传送给别的对象中的方法;中的方法;nsuper为了访问父类的成员变量或方法,采用为了访问父类的成员变量或方法,采用super加上点和成员变量或方法的形式。加上点和成员变量或方法的形式。构造方法构造方法面向对象编程面向对象编程例例3-3:源程序名为:源程序名为Inheritance.java,是构造方法的例子。,是构造方法的例子。/*定义一个父类定义一个父类superclassname*/classsuperclassnameintx;superclassname()/父类无参数构造方法父类无参数构造方法x=3;System.out.println(在父类中在父类中x=+x);voiddoso
22、mething()/父类中成员方法父类中成员方法System.out.println(在父类中在父类中dosomething();面向对象编程面向对象编程/*定义一个子类定义一个子类subclass,从,从superclassname继承而来继承而来*/classsubclassextendssuperclassnameintx;subclass()super();/调用父类无参数构造方法调用父类无参数构造方法 x=5;System.out.println(在子类中在子类中x=+x);voiddosomething()/子类中成员方法子类中成员方法super.dosomething();/调用
23、父类中成员方法调用父类中成员方法dosomething()System.out.println(在子类中在子类中dosomething();System.out.println(super.x=+super.x+sub.x=+this.x);/*利用利用super引用父类对象,利用引用父类对象,利用this引用当前对象引用当前对象*/面向对象编程面向对象编程/*定义主程序类定义主程序类inheritance*/classInheritancepublicstaticvoidmain(Stringargs)subclasssubc=newsubclass();/调用子类构造方法创建一个对象调用子
24、类构造方法创建一个对象subcsubc.dosomething();/调用子类的成员方法调用子类的成员方法dosomething()运行结果:运行结果:面向对象编程面向对象编程3.3对象对象n对象的定义对象的定义=new(参数(参数1,参数,参数2,););或者:或者:;=new(参数(参数1,参数,参数2,););n创建对象实际执行了三个操作:创建对象实际执行了三个操作:说明对象说明对象、实例化对实例化对象象和和初始化对象初始化对象。n说明对象说明对象:就是给对象命名,也称定义一个实例变量。:就是给对象命名,也称定义一个实例变量。一般形式为:一般形式为:;n实例化对象实例化对象:给对象分配存
25、储空间,用来保存对象的数据:给对象分配存储空间,用来保存对象的数据和代码。和代码。new运算符用来实现对象的实例化。运算符用来实现对象的实例化。=new(参数(参数1,参数参数2,););面向对象编程面向对象编程对象的使用对象的使用n初始化对象初始化对象通过调用该对象所在类的构造方法来实通过调用该对象所在类的构造方法来实现的。现的。n引用对象的方法一般形式:引用对象的方法一般形式:(,);例例3-4:程序:程序TwoArea.java,是引用对象的例子。,是引用对象的例子。执行结果:执行结果:面向对象编程面向对象编程/*定义一个类定义一个类Point*/classPointpublicintx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 编程
限制150内