第三章面向对象编程精选PPT.ppt
《第三章面向对象编程精选PPT.ppt》由会员分享,可在线阅读,更多相关《第三章面向对象编程精选PPT.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章面向对象编程第三章面向对象编程第1页,本讲稿共63页本章知识要点:本章知识要点:定义继承、多态、重载、覆盖和虚拟方法调用定义继承、多态、重载、覆盖和虚拟方法调用使用访问修饰符使用访问修饰符protectedprotected和和“友元包友元包”描述构造器和方法重载的概念描述构造器和方法重载的概念描述完整的对象构造和初始化操作描述完整的对象构造和初始化操作在在javajava程序中识别下列内容程序中识别下列内容重载方法和构造器重载方法和构造器使用使用thisthis来调用重载的构造器来调用重载的构造器覆盖方法覆盖方法调用超类方法调用超类方法父类构造器父类构造器调用父类构造器调用父类构造器类
2、设计第2页,本讲稿共63页面向对象的思想概述面向对象的思想概述1.面向对象的编程思想力图使对计算机语言中对事物的的描述与现实世界中该事物的本来面目尽可能的一致。2.类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。第3页,本讲稿共63页类和对象类和对象(1)对象表示现实世界中某个具体的事物。对象表示现实世界中某个具体的事物。抽象是从特定的实例中抽取共同的性质以形抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程。成一般化概念的过程。对象具有两方面的含义:对象具有
3、两方面的含义:9 在现实世界中:在现实世界中:是客观世界中的一个实体是客观世界中的一个实体9 在计算机世界中:在计算机世界中:是一个可标识的存储区域是一个可标识的存储区域第4页,本讲稿共63页类和对象类和对象(2)类是具有共同属性类是具有共同属性和行为的对象的抽和行为的对象的抽象。象。类可以定义为数据类可以定义为数据和方法的集合。和方法的集合。类也称为模板,因类也称为模板,因为它们提供了对象为它们提供了对象的基本框架。的基本框架。类对象抽抽象象实实例例化化属性或状态属性或状态操作或行为操作或行为数据或变量数据或变量方法方法封装的实体=数据+方法第5页,本讲稿共63页创建类创建类 classna
4、metypevariable1;typevariableN;typemethodname1(parameter-list)/方法体方法体typemethodnameN(parameter-list)/方法体方法体 在类中,属性是通过成员变量体现在类中,属性是通过成员变量体现的,而操作是用成员函数(又称为的,而操作是用成员函数(又称为方法)实现的。方法)实现的。Java中定义类的通用格式:成员变量(对象属性)成员方法(对象行为或操作)第6页,本讲稿共63页类和对象举例定义一个类定义一个类:class Person int age;int getAge()return age;void setAg
5、e(int i)age=i;声明并创建一个声明并创建一个Person类的对象,将该对象命名为类的对象,将该对象命名为a:Person a=new Person();调用对象调用对象a中的方法中的方法:a.setAge(36);第7页,本讲稿共63页声明属性语法格式:type =defaultValue;举例:public class Person private int age;public String name=“Lila”;第8页,本讲稿共63页定义方法定义方法定义方法的一般格式:定义方法的一般格式:accesstypemethodname1(parameter-list)/方法体方法体
6、发往某个对象的消息对应于一发往某个对象的消息对应于一个方法调用。作为对消息的响个方法调用。作为对消息的响应,对象将执行一个类似于过应,对象将执行一个类似于过程体的方法。方法是包含在类程体的方法。方法是包含在类中的函数。中的函数。方法名称返回类型修饰符,可选参数列表,可选举例:举例:publicvoidsetdate(intday,intmonth,intyear)day=23;month=7;year=2003;第9页,本讲稿共63页构造方法构造方法构造函数名称与类名称相同构造函数名称与类名称相同构造函数没有返回类型构造函数没有返回类型其任务是在创建对象时初始化其内部状态其任务是在创建对象时初
7、始化其内部状态class Fruit boolean seedLess;boolean seasonal;float price;Fruit(boolean seed,boolean season,float p)seedLess=seed;seasonal=season;price =p;第10页,本讲稿共63页默认的构造方法(默认的构造方法(1)Java语言中,每个类都至少有一个构造方法;如果类的定义者没有显式的定义任何构造方法,系统将自动提供一个默认的构造方法:默认构造方法没有参数默认构造方法没有方法体Java类中,一旦类的定义者显式定义了一个或多个构造方法,系统将不再提供默认的构造方法
8、;第11页,本讲稿共63页默认的构造方法(默认的构造方法(2)类的定义:public class Person private int age;public void setAge(int w)age=w;等价于:public class Person private int age public Person()public void setAge(int w)age=w;应用举例:public class Test public static void main(String args)Person d=new Person();d.setAge(120);第12页,本讲稿共63页创建对象
9、创建对象使用下列语法可创建对象:使用下列语法可创建对象:new 构造函数构造函数关键字关键字 new 通常称为创建运算符,用于分通常称为创建运算符,用于分配对象内存,并将该内存初始化为缺省值。配对象内存,并将该内存初始化为缺省值。一旦一旦 new 完成分配和初始化内存,它就将完成分配和初始化内存,它就将调用构造函数来执行对象初始化。调用构造函数来执行对象初始化。当创建一个类时,只是创当创建一个类时,只是创建了一种新的数据类型。建了一种新的数据类型。对象是类的一个实例。对象是类的一个实例。classFruitDemopublicstaticvoidmain(Stringargs)Fruitf=n
10、ewFruit(true,false,50.0F);创建对象第13页,本讲稿共63页练习分析并编译、运行下面的源文件,体会类的定义、对象的创建、对象分析并编译、运行下面的源文件,体会类的定义、对象的创建、对象成员方法的调用、类的定义和应用程序在源文件结构上的不同;成员方法的调用、类的定义和应用程序在源文件结构上的不同;/源文件源文件A.javapublic class A public void m1()System.out.println(hi);/源文件源文件Test.javapublic class Test public static void main(String args)A h
11、ello=new A();hello.m1();第14页,本讲稿共63页面向对象的应用举例(1)程序程序BirthDate.java:public class BirthDate private int day;private int month;public int year;public void setDay(int d)day=d;public void setMonth(int m)month=m;public void setYear(int y)year=y;public int getDay()return day;public int getMonth()return mon
12、th;public int getYear()return year;public void show()System.out.println(day+-+month+-+year);第15页,本讲稿共63页面向对象的应用举例(2)程序程序ObjectOperating.java:public class ObjectOperating public static void main(String args)BirthDate b=new BirthDate();b.setDay(25);b.setMonth(12);b.setYear(2003);b.day=2;b.year=2003;b.
13、show();第16页,本讲稿共63页JavaJava中的访问修饰符中的访问修饰符JavaJava中共有四种访问修饰符:中共有四种访问修饰符:1 1、public public:完全公开,没有类或包的限制完全公开,没有类或包的限制2 2、protectedprotected:强调继承关系,没有包的限制强调继承关系,没有包的限制3 3、defaultdefault:有包的限制,没有类的限制,有包的限制,没有类的限制,对于同一包对于同一包中的类来说,相当于中的类来说,相当于publicpublic修饰符。也可叫做修饰符。也可叫做package package privateprivate4 4、p
14、rivate:private:有包的限制,同时也有类的限制,只能被有包的限制,同时也有类的限制,只能被同一个类中的成员函数或内部类访问。同一个类中的成员函数或内部类访问。第17页,本讲稿共63页关于访问权限的习题测试privatefriendlyprotectedpublic同一类同包不同类同包子类不同包子类不同包不同类calssuseYYYYNYYY NYYY NNYYNNNY下题每空5分,测测您的分数:第18页,本讲稿共63页实例验证在在同同一一个个类类中中package accessdemo;public class SuperClasspublic void testPublic()S
15、ystem.out.println(a public method in superclass);protected void testProtected()System.out.println(a protected method in superclass);void testFriendly()System.out.println(a friendly method in superclass);private void testPrivate()System.out.println(a private method in superclass);public static void m
16、ain(String args )SuperClass sc=new SuperClass();sc.testPublic();sc.testProtected();sc.testFriendly();sc.testPrivate();第19页,本讲稿共63页实例验证同一同一包不包不同类同类package accessdemo;import accessdemo.SuperClass;public class SamePackOtherClasspublic static void main(String args)SuperClass s=new SuperClass();s.testPub
17、lic();s.testProtected();s.testFriendly();s.testPrivate();s.testPrivate();第20页,本讲稿共63页实例验证同一同一包子包子类类package accessdemo;import accessdemo.SuperClass;public class SamePackSubClass extends SuperClasspublic static void main(String args)SamePackSubClass s1=new SamePackSubClass();s1.testPublic();s1.testPro
18、tected();s1.testFriendly();s1.testPrivate();s1.testPrivate();第21页,本讲稿共63页实例验证不同不同包子包子类类package accessdemo.otherpack;import accessdemo.SuperClass;public class OtherPackSubClass extends SuperClasspublic static void main(String args)OtherPackSubClass s1=new OtherPackSubClass();s1.testPublic();s1.testPr
19、otected();s1.testFriendly();s1.testPrivate();s1.testFriendly();s1.testPrivate();第22页,本讲稿共63页实例验证不同不同包不包不同类同类package accessdemo.otherpack;import accessdemo.SuperClass;public class OtherPackOtherClasspublic static void main(String args)SuperClass s=new SuperClass();s.testPublic();s.testProtected();s.t
20、estFriendly();s.testPrivate();s.testProtected();s.testFriendly();s.testPrivate();第23页,本讲稿共63页继承 继承表示一个类从其它类中获得结构和行为(子类/父类)又名普遍化 交通工具是一个父类 地面交通工具和空中交通工具是子类VehicleGroundVehicleAirVehicleThe arrow points toward the superclass第24页,本讲稿共63页继承继承通常被称为“is-a”或“kind-of”一个子类的实例也“is a”父类的实例 一个子类的实例是“kind-of”父类第2
21、5页,本讲稿共63页多层次A Car is a kind of GroundVehicle which is a kind of VehicleVehicle and AirVehicle areancestors of AirplaneAirVehicle and Airplane are descendants of VehicleVehicleGroundVehicleAirVehicleCarTruckAirplaneHelicopter第26页,本讲稿共63页继承操作属性在继承结构的最高一层定义所有子类的实例能够继承这些操作每个子类可以增加或重新定义继承的属性GroundVehicl
22、elicenseNumberweightregister()CarTrucktonnagecalculateTax()A truck has three attributes:licenseNumberweighttonnageand two operations:registercalculateTax第27页,本讲稿共63页继承关系 关系也可以继承 每个子类都可以分享继承的关系GroundVehiclelicenseNumberweightregister()A truck has an ownerCarTrucktonnagecalculateTax()OwnerPerson1.*and
23、 a car has an owner1owner第28页,本讲稿共63页覆盖方法 子类可以修改从父类继承的行为。子类可以创建同父类的方法不同功能的方法,但方法名、返回值类型、参数列表必须一致。要求:1.方法声明形式一致 2.方法权限不允许缩小 3.覆盖的方法不允许抛出比父类方法更多的异常第29页,本讲稿共63页方法覆盖的示例classA1voidcallme()System.out.println(“在在A1的的callme()成员函数里成员函数里”);classB1extendsA1voidcallme()System.out.println(“在在B1的的callme()成员函数里成员函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 面向 对象 编程 精选 PPT
限制150内