3面向对象编程

上传人:豆浆 文档编号:24939117 上传时间:2017-12-09 格式:PPT 页数:94 大小:1.18MB
返回 下载 相关 举报
3面向对象编程_第1页
第1页 / 共94页
3面向对象编程_第2页
第2页 / 共94页
3面向对象编程_第3页
第3页 / 共94页
3面向对象编程_第4页
第4页 / 共94页
3面向对象编程_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《3面向对象编程》由会员分享,可在线阅读,更多相关《3面向对象编程(94页珍藏版)》请在金锄头文库上搜索。

1、第三章 面向对象编程,学习目标掌握:掌握创建和使用类对象、使用包的基本方法。理解:理解面向对象程序设计的基本思想和面向对象的概念。了解:类的多态,接口的声明及实现方法。重点明确各种修饰符的作用,理解继承和复用的概念理解父类和子类学会Java类的定义和对象的创建。 难点掌握扩展类编程理解多态性是如何扩充和维护系统性能类多态的实现。,本讲要点,面向过程和面向对象,面向过程程序设计示意图 面向对象程序设计示意图,1-4,3.1面向对象的思想,面向对象的基本概念 对象是具有某种特性和某种功能的东西。将同一种类型的对象归为一个类。类是对象的抽象,对象是类的实例。类的特征和行为分别命名为属性和方法,类是对

2、象的模板,而对象是类的实例;共性与个性的关系,是抽象与具体的关系 。,3.1面向对象的思想,一个类中定义的方法可被该类的对象调用,对象方法的每一调用被称作发送一个消息message给对象 。对象间是相互独立,通过发送消息相互影响。一个消息由三部分组成:(1) 消息目标对象;(2) 执行方法的名字;(3) 执行方法所需要的参数(parameters)。(因Java是一个对象化的语言,对象也常被用来当作参数传递。),创建对象,创建对象包括对象声明和对象初始化两个部分。通常这两部分是结合在一起的,即定义对象的同时对其初始化,为其分配空间,并进行赋值。其格式为: =new ()例如,程序1-2中创建B

3、irthdate类的一个对象可以写成: Birthdate birth=new Birthdate();,Birthdate类的对象birth的创建过程,Birthdate类的对象birth的创建过程,对象的使用通过成员运算符“.”实现对变量的访问和方法的调用。通常使用的格式为: 例如: birth.year=2000; birth.display();,使用对象,对象名.成员变量名对象名.成员方法名(),1. 使用对象成员,例:设计类BirthDate,显示年,public class BirthDate private int year; private int mouth;public

4、int setYear(int newyear) year=newyear; return year;public static void main(String args) BirthDate birth=new BirthDate(); birth.year=2000; System.out.println(“第1句.年为 +birth.year); System.out.println(“第2句.年为 + birth.setYear(2007);,运行结果,2.对象赋值,同类的对象之间也可以进行赋值,这种情况称为对象赋值。例如: BirthDate anotherbirth; anoth

5、erbirth=birth;变量赋值不一样,对象赋值并不是真正把一个对象赋给另一个对象,而是让一个对象名存储的对象首地址和另一个对象名存储的对象首地址相同。换句话说,对象间的赋值实际上是对象首地址的赋值。,anotherbirth=birth的赋值过程,class Number int i; public static void main(String a) Number n1=new Number(); Number n2=new Number(); n1.i=6; n2.i=16; System.out.println(“n1.i=“+n1.i+” ”+”n2.i=“+n2.i); n1=

6、n2; System.out.println(“n1.i=“+n1.i+” ”+”n2.i=“+n2.i); n1.i=66; System.out.println(“n1.i=“+n1.i+” ”+”n2.i=“+n2.i); ,例:设计类Number,测试对象间的赋值,封装性封装性就是把对象的属性和方法结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节。对外形成一个边界或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。继承性特殊类的对象拥有其一般类的全部属性与方法,称作特殊类对一般类的继承 .一般类为父类(superclass,超类),特殊类为子类(subclass)。多态性对

7、象的多态性是指在一般类中定义的属性或方法被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。,面向对象的特点,面向对象三大机制:封装:隐藏内部实现继承:复用现有代码多态:改写对象行为,3.2类,类由数据成员和方法组成。类封装了一类对象的状态和方法 。,汽车(类)品牌型号颜色-加速与减速设计转向设计刹车设计,类的声明,类的修饰符用于说明类的特征和访问权限,包括public,abstract,final,friendly。public:表示此类为“公共”类 ; abstract:表示此类为“抽象”类 ; final:表示此类为“最终”类 .类名是Java标识符。通常,类名的第一个字母为大写

8、。,class,extends,implements都是Java关键字。class表明定义类。extends表明目前定义的类是父类继承而来的子类,该父类必须存在。implements表明类要实现某个接口。各接口名之间用逗号“,”分隔。类体包含:实现类功能的Java语言程序代码、成员变量、成员方法。类的成员变量定义: 修饰符 数据类型 成员变量=初值; 成员变量的修饰符 访问控制修饰符public、protected、private; 存在修饰符static、abstract和final。,类的声明,类的成员方法 定义的一般形式为: 方法修饰符 () 方法体 成员方法修饰符 主要有public、

9、private、protected、final、static、abstract和synchronized七种 。成员方法的返回值类型 方法返回值用return语句来实现,返回的数据类型必须与方法说明中的方法返回值类型一致 ; 如果不需要返回值,则其返回值类型被说明为void;,类的声明,Java中的类、方法和变量,类的严格定义及修饰字,类的修饰字 class 类名称 extends 父类名称 . ,public, abstract, final或者没有,变量修饰字 变量数据类型 变量名1,变量名2=变量初值;,方法修饰字 方法的返回值类型 方法名称(参数1,参数2, /方法的内容,方法和变量的

10、定义及修饰字,public、protected、private,Java名空间及访问规则,每个类都创造了有自己的名字空间,指方法和变量可以知道彼此的存在,可以使用。abstract类不能直接产生属于这个类的对象final类不能被其他任何类所继承(安全的考虑)public类不但可以被同一程序包中的其它类使用,别的程序包中的类也可以使用.friendly(缺省)类只能被本包中的其它类使用,Java名空间及访问规则,变量和方法的修饰字public、protected、privatepublic: 任何其它类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法。,class ABC p

11、ublic int pub_i=5; public void show)() System.out.println (“pub_i”+pub_i);,Java名空间及访问规则,class Demo public static void main(String args) ABC abc=new ABC(); System.out.println(“abc.pub_i”+abc.pub_i); abc.pub_i=10; abc.show(); ,abc.pub_i=5pub_i=10;,Java名空间及访问规则,protected变量和方法如果一个类中变量或方法有修饰字protected,同一

12、类,同一包可以使用。不同包的类要使用,必须是该类的子类可以存取变量或调用,public class ABC protected int pro_i=5; protected void show() System.out.println (“pro_i=” +pro_i;) ,Java名空间及访问规则,private不允许任何其他类存取和调用friendly(前边没有修饰字的情况)在同一程序包中出现的类才可以直接使用它的数据和方法.,Java名空间及访问规则,protected变量和方法如果一个类中变量或方法有修饰字protected,同一类,同一包可以使用。不同包的类要使用,必须是该类的子类可

13、以存取变量或调用,public class ABC protected int pro_i=5; protected void show() System.out.println (“pro_i=” +pro_i;) ,Java名空间及访问规则,不同中的类不能使用,class DEF public static void main(String args) ABC abc=new ABC(); System.out.println (“abc.pro_i=“+abc.pro_i); abc.pub_i=10; abc.show(); ,final,private is final?,final

14、方法 可以继承 不能被覆盖,final类 不能被继承,全局常量定义时赋值 public staric final int MAX=100;,final变量常量 一旦被初始化便不可改变C+ const 初始化地方 其定义处;在构造方法中。,方法名 成员方法名是Java语言合法的标识符。参数列表 成员方法的参数列表是由逗号分隔的类型及参数名组成,是可选项。方法体 方法体是一个方法定义的主要部分,包含了所有实现方法功能的Java语言程序代码,方法体用“ ”括起来 。例3-2 :源程序名为TestCir.java;定义一个方法,其功能是根据参数r的大小,返回圆的面积。 运行结果:,类的声明,public class TestCir public static void main(String args) /main方法 double k; TestCir mj=new TestCir(); k=mj.area(5); System.out.println(k); public double area(int r) /定义area方法,带有一个参数r final double PI=3.14; /定义常量PI为3.14 return PI*r*r; /由r的值,计算面积,返回面积值 ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号