面向对象技术基础

上传人:san****019 文档编号:70928601 上传时间:2019-01-19 格式:PPT 页数:100 大小:478.81KB
返回 下载 相关 举报
面向对象技术基础_第1页
第1页 / 共100页
面向对象技术基础_第2页
第2页 / 共100页
面向对象技术基础_第3页
第3页 / 共100页
面向对象技术基础_第4页
第4页 / 共100页
面向对象技术基础_第5页
第5页 / 共100页
点击查看更多>>
资源描述

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

1、第4章 面向对象程序设计基础,主要内容,4.1 面向对象的基本概念 4.2 类的定义 4.3 类和对象的使用 4.4 包package 4.5 成员变量及方法的访问权限 4.6 final、this及其它,4.1 面向对象的基本概念,4.1.1面向对象编程的概念 4.1.2客观事物的抽象,4.1.1面向对象编程的概念,1、面向过程编程: 我们很多人使用过Fortran、Basic,C等面向过程的程序设计语言,这些语言是按流程化的思想来组织的。在这些语言的设计思想中,通常将存放基本数据类型的变量作为程序处理对象、以变量的赋值作为程序的基本操作、以变量值的改变作为程序运行的状态。这种程序设计风格存

2、在着数据抽象简单、信息完全暴露、算法复杂、无法很好地描述客观世界等缺点。在程序设计过程中,为了实现有限度的代码重用,公共代码被组织成为过程或函数。当需要代码重用时,调用已经组织好的过程或函数。在这种应用方式中,如果软件项目庞大,程序的调试和维护将变得异常困难。,4.1.1面向对象编程的概念,2、面向对象编程: 而面向对象的程序设计思想是将数据以及对于这些数据的操作,封装在了一个单独的数据结构中。这种模式更近似于现实世界,在这里,所有的对象都同时拥有属性以及与这些属性相关的行为。对象之间的联系是通过消息来实现的,消息是请求对象执行某一处理或回答某些信息的要求。某个对象在执行相应的处理时,可以通过

3、传递消息请求其他对象完成某些处理工作或回答某些消息。其他对象在执行所要求的处理活动时,同样可以通过传递消息和另外的对象联系。所以,一个面向对象程序的执行,就是靠对象间传递消息来完成的。,4.1.1面向对象编程的概念,面向对象编程: 面向对象程序设计是一种新兴的程序设计方法,或者是一种新的程序设计规范,它使用对象、类、继承、封装、消息等基本概念来进行程序的设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。其应用领域不仅仅是软件,还有计算机体系结构和人工智能等。,4

4、.1.1面向对象编程的概念,面向对象的三大特点:封装、继承、多态 1)封装 封装就是把对象的属性和和对这些属性的操作封装在一个单独的数据结构中,并尽可能隐蔽对象的内部细节,包含两个含义: 把对象的全部属性和对属性的全部操作结合在一起,形成一个不可分割的独立单元(即对象)。 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。,4.1.1面向对象编程的概念,面向对象的三大特点:封装、继承、多态 2)继承 继承是一种由已有的类创建新类的机制。利用继承,我们可以先创建一个拥有共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类继承

5、一般类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类称为子类,被继承的类称为父类或超类。Java不支持多重继承,子类只能有一个父类。 在Java编程语言中,通过继承可利用已有的类,并扩展它的属性和方法。这个已有的类可以是语言本身提供的、其他程序员编写的或程序员原来编写的。继承在Java中无所不在。,4.1.1面向对象编程的概念,面向对象的三大特点:封装、继承、多态 3)多态 对象的多态是由封装和继承引出的面向对象程序设计语言的另一特征。主要体现在两个方面:方法重载时实现的静态多态和方法重载时实现的动态多态。 多态性使得我们的同一方法,可以有多种形式。另外父类中定义的属性或

6、方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,同一个属性或方法在父类及其各个子类中可以具有不同的语义。,4.1.2客观事物的抽象,为了使计算机能够处理和理解客观事物,必须对事物进行抽象,以求得事物的本质。现实事物纷繁复杂,因此,在事物抽象过程中,必须忽略抽象事物中那些与当前目的无关的特征,求取对当前需求有直接影响的因素。因此,针对客观事物的抽象必须掌握一定的抽象原则。 我们知道,当确定了一个圆形的圆心位置和圆的半径后,就可以在平面上确定一个圆。因此,抽象出来的圆的要素为圆心和半径。,4.1.2客观事物的抽象,用数据结构来表示,如下: class Circle point cen

7、ter; / 圆心 float rudius; / 半径 其中class是面向对象程序设计常用来定义“类”这种数据结构的关键字。,4.1.2客观事物的抽象,添加一些基本的行为如获取圆的面积,表示如下: class Circle point center; / 属性或成员 float radius; / 属性或成员 double getArea() / 方法 return radius*radius*3.1415926; ,4.1.2客观事物的抽象,添加一些基本的行为如获取圆的面积,表示如下: class Circle point center; / 属性或成员 float radius; /

8、属性或成员 double getArea() / 方法 return radius*radius*3.1415926; ,第4章 面向对象程序设计基础,4.1 面向对象的基本概念 4.2 类的定义 4.3 类和对象的使用 4.4 包package 4.5 成员变量及方法的访问权限 4.6 final、this及其它,4.2 类的定义,4.2.1 类声明 4.2.2 类体 4.2.3 实例化对象 4.2.4 构造方法说明 4.2.5 对象的清除 4.2.6 方法重载,4.2.1类声明,类的声明举例: class Circle point center; / 属性或成员 float radius;

9、 / 属性或成员 double getArea() / 方法 return radius*radius*3.1415926; public class Rectangle extends Shapes implement Display / 类体 /下面的Rectangle类继承了Shapes父类,实现了接口 Display,是一个公共类。,4.2.1类声明,类声明的格式如下: 修饰符 class 类名 extends 超类名 implements接口名列表 可能的选项有: publicabstract|final class 类名 extends 超类名 implements 接口名列表 p

10、ublic(公共):public修饰的类能被所有的类访问。 abstract(抽象):abstract修饰的类不能被实例化,它包含 有未实现的方法。 final(最终):final修饰的类不能被继承,即不能有子类。 注意: abstract和final不能同时作为一个类的修饰符。,4.2.1类声明,类名: 习惯上类名的第一个字母大写,但这不是必须的。类的名字不能是Java 中的关键字,要符合标识符规定,即名字可以由字母,下划线,数字或美圆符号组成,并且第一个字符不能是数字。但给类命名时,最好遵守如下习惯: 如果类名使用拉丁字母,那么名字的首写字母使用大写字母,例如Hello、Time、Peop

11、le等。 类名最好见名知意,当类名由几个”单词”复合而成时,每个单词的首写字母使用大写,如BeijingTime、AmericanMap、HelloChina等。,4.2.1类声明,extends(继承): extends保留字用来表明新创建的类继承哪个类,被继承的类称为此类的父类。extends后面只能跟一个父类名。 implements(实现): 用来表明这个类实现了哪些接口,接口名可以有多个。 例如:下面的类是合法的: class MyC1ass /空类,没有任何用处,但是合法 又如:下面的Rectangle类继承了Shapes父类,实现了接口Display,是一个公共类。 public

12、 class Rectangle extends Shapes implement Display / 类体 ,4.2.2类体,类体中定义了该类所有的成员变量和该类所支持的方法,其格式说明如下: 成员变量说明 成员方法说明 ,4.2.2类体,类体: public | protected | private static final transient volatile type variableName; /成员变量 public | protected | private static final | abstract native synchronized returnType metho

13、dName(paramList) throws exceptionList statements /成员方法 ,4.2.2类体,1成员变量说明 成员变量又称值域。成员变量的说明类似于方法的局部变量说明,所不同的是,成员变量定义在类中,是类成员的一部分,整个类都可以访问它。Java中成员变量说明形式如下: 修饰符 成员变量类型 成员变量名列表; 例如:private int number; 成员变量的修饰符有以下几种:缺省访问修饰符、public、protected、private、final、static、transient和volatile。 关于这些修饰符的含义以后将讲到。,4.2.2类体

14、,2成员变量使用 类的成员变量在定义它的类内部,可以直接通过成员变量名来访问。 class Circle static final float PI=3.1415926f; / 常量 private Point center; / 属性或成员 private float radius; / 属性或成员 static Color color; public float area; float getArea() / 方法 return radius*radius*PI; /内部访问成员变量 ,4.2.2类体,如果从类的外部访问,类变量和类对象变量的使用方法是不同。访问类变量的格式如下: 类名.类

15、变量名 例如我们可以采用下面形式访问上例中的静态变量color的:Circle.color,由此可见,访问类变量与类的对象构造和对象都无关。类变量名必须用static修饰。更详细的说明见后面的章节。 访问实例变量的格式如下: 对象名.实例变量名 例如 Circle c1=new Circle(); /c1是对象名 System.out.println(“area=”+c1.area); System.out.println(“Color=”+Circle.color);,class Circle static final float PI=3.1415926f; / 常量 private Point center; / private float radius; /实例变量 static Color color; /类变量 public float area; float getArea() /实例方法 area= radius*radius*PI; return area; /内部访问成员变量 访问: Circle c1=new Circle(); /c1是对象名 System.out.println(“area=”+c1.area); System.out.println(“C

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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