第04章面向对象技术基础精选文档.ppt
《第04章面向对象技术基础精选文档.ppt》由会员分享,可在线阅读,更多相关《第04章面向对象技术基础精选文档.ppt(98页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第04章面向对象技章面向对象技术基础术基础本讲稿第一页,共九十八页主要内容主要内容4.1 4.1 面向对象的基本概念面向对象的基本概念面向对象的基本概念面向对象的基本概念4.2 4.2 类的定义类的定义类的定义类的定义4.3 4.3 类和对象的使用类和对象的使用类和对象的使用类和对象的使用 4.4 4.4 包包包包packagepackage4.5 4.5 成员变量及方法的访问权限成员变量及方法的访问权限成员变量及方法的访问权限成员变量及方法的访问权限4.6 final4.6 final、thisthis及其它及其它及其它及其它 本讲稿第二页,共九十八页4.1 面向对象的基本概念面向对象的基
2、本概念4.1.1面向对象编程的概念面向对象编程的概念 4.1.2客观事物的抽象客观事物的抽象本讲稿第三页,共九十八页4.1.1面向对象编程的概念面向对象编程的概念 1、面向、面向过程过程编程:编程:我们很多人使用过Fortran、Basic,C等面向过程的程序设计语言,这些语言是按流程化流程化的思想来组织的。在这些语言的设计思想中,通常将存放基本数据类型的变量作为程序处理对象、以变量的赋值作为程序的基本操作、以变量值的改变作为程序运行的状态。这种程序设计风格存在着数据抽象简数据抽象简单、信息完全暴露、算法复杂、无法很好地描述客单、信息完全暴露、算法复杂、无法很好地描述客观世界等缺点观世界等缺点
3、。在程序设计过程中,为了实现有限度的代码重用,公共代码被组织成为过程或函数。当需要代码重用时,调用已经组织好的过程或函数。在这种应用方式中,如果软件项目庞大,程序的调如果软件项目庞大,程序的调试和维护将变得异常困难试和维护将变得异常困难。本讲稿第四页,共九十八页4.1.1面向对象编程的概念面向对象编程的概念 2、面向、面向对象对象编程:编程:而面向对象的程序设计思想是将数据以及对于将数据以及对于这些数据的操作,封装在了一个单独的数据结构中这些数据的操作,封装在了一个单独的数据结构中。这种模式更近似于现实世界,在这里,所有的对象都同时拥有属性以及与这些属性相关的行为。对象之间的联系是通过消息来实
4、现的,消息是请求对象执行某一处理或回答某些信息的要求。某个对象在执行相应的处理时,可以通过传递消息请求其他对象完成某些处理工作或回答某些消息。其他对象在执行所要求的处理活动时,同样可以通过传递消息和另外的对象联系。所以,一个面向对象程序的执行,就是靠对象间传递消息来完成的。本讲稿第五页,共九十八页4.1.1面向对象编程的概念面向对象编程的概念 面向对象编程:面向对象编程:面向对象程序设计是一种新兴的程序设计方法,或者是一种新的程序设计规范,它使用对象、类、继对象、类、继承、封装、消息等基本概念来进行程序的设计承、封装、消息等基本概念来进行程序的设计。从现实世界中客观存在的事物(即对象)出发来构
5、造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。其应用领域不仅仅是软件,还有计算机体系结构和人工智能等。本讲稿第六页,共九十八页4.1.1面向对象编程的概念面向对象编程的概念 面向对象的三大特点:面向对象的三大特点:封装、继承、多态封装、继承、多态 1)封装 封装就是把对象的属性和和对这些属性的操作封装在一个单独的数据结构中,并尽可能隐蔽对象的内部细节,包含两个含义:n n把对象的全部属性和对属性的全部操作结合在一起,把对象的全部属性和对属性的全部操作结合在一起,形成一个不可分割的独立单元(即对象)。形成一个
6、不可分割的独立单元(即对象)。n n信息隐蔽,即尽可能隐蔽对象的内部细节,对外形信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界成一个边界或者说形成一道屏障或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。本讲稿第七页,共九十八页4.1.1面向对象编程的概念面向对象编程的概念 面向对象的三大特点:面向对象的三大特点:封装、继承、多态封装、继承、多态 2)继承 继承是一种由已有的类创建新类的机制。利用继承,我们可以先创建一个拥有共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类称为子类,被继承
7、的类称为父类或超类。Java不支持多重继承,子类只能有一个父类。在Java编程语言中,通过继承可利用已有的类,并扩展它的属性和方法。这个已有的类可以是语言本身提供的、其他程序员编写的或程序员原来编写的。继承在Java中无所不在。本讲稿第八页,共九十八页4.1.1面向对象编程的概念面向对象编程的概念 面向对象的三大特点:面向对象的三大特点:封装、继承、多态封装、继承、多态 3)多态对象的多态是由封装和继承引出的面向对象程序设计语言的另一特征。主要体现在两个方面:方法重载时实现的静态多态和方法重载时实现的动态多态。多态性使得我们的同一方法,可以有多种形式。另外父类中定义的属性或方法被子类继承之后,
8、可以具有不同的数据类型或表现出不同的行为,同一个属性或方法在父类及其各个子类中可以具有不同的语义。本讲稿第九页,共九十八页4.1.2客观事物的抽象客观事物的抽象 为了使计算机能够处理和理解客观事物,必须为了使计算机能够处理和理解客观事物,必须对事物进行抽象,以求得事物的本质。现实事物纷对事物进行抽象,以求得事物的本质。现实事物纷繁复杂,因此,在事物抽象过程中,必须忽略抽象繁复杂,因此,在事物抽象过程中,必须忽略抽象事物中那些与当前目的无关的特征,求取对当前需事物中那些与当前目的无关的特征,求取对当前需求有直接影响的因素。因此,针对客观事物的抽象求有直接影响的因素。因此,针对客观事物的抽象必须掌
9、握一定的抽象原则。必须掌握一定的抽象原则。我们知道,当确定了一个圆形的圆心位置和圆的半径后,就可以在平面上确定一个圆。因此,抽象出来的圆的要素为圆心和半径。本讲稿第十页,共九十八页4.1.2客观事物的抽象客观事物的抽象用数据结构来表示,如下:用数据结构来表示,如下:class Circleclass Circlepoint center;/point center;/圆心圆心float radius;/float radius;/半径半径 其中其中classclass是面向对象程序设计常用来定义是面向对象程序设计常用来定义“类类”这种这种数据结构的关键字。数据结构的关键字。本讲稿第十一页,共九
10、十八页4.1.2客观事物的抽象客观事物的抽象添加一些基本的行为如获取圆的面积,表示如下:添加一些基本的行为如获取圆的面积,表示如下:class Circle class Circle point center;/point center;/属性或成员属性或成员 float radius;/float radius;/属性或成员属性或成员 double getArea()/double getArea()/方法方法 return radius*radius*3.1415926;return radius*radius*3.1415926;本讲稿第十二页,共九十八页4.1.2客观事物的抽象客观事物
11、的抽象添加一些基本的行为如获取圆的面积,表示如下:添加一些基本的行为如获取圆的面积,表示如下:class Circle class Circle point center;/point center;/属性或成员属性或成员 float radius;/float radius;/属性或成员属性或成员 double getArea()/double getArea()/方法方法 return radius*radius*3.1415926;return radius*radius*3.1415926;本讲稿第十三页,共九十八页第第4章章 面向对象程序设计基础面向对象程序设计基础4.1 4.1 面
12、向对象的基本概念面向对象的基本概念面向对象的基本概念面向对象的基本概念4.2 4.2 类的定义类的定义类的定义类的定义4.3 4.3 类和对象的使用类和对象的使用类和对象的使用类和对象的使用 4.4 4.4 包包包包packagepackage4.5 4.5 成员变量及方法的访问权限成员变量及方法的访问权限成员变量及方法的访问权限成员变量及方法的访问权限4.6 final4.6 final、thisthis及其它及其它及其它及其它 本讲稿第十四页,共九十八页4.2 类的定义类的定义4.2.1 类声明类声明4.2.2 类体类体4.2.3 实例化对象实例化对象4.2.4 构造方法说明构造方法说明
13、4.2.5 对象的清除对象的清除4.2.6 方法重载方法重载本讲稿第十五页,共九十八页4.2.1类声明类声明类的类的声明声明举例:举例:举例:举例:class class CircleCircle point center;/point center;/属性或成员属性或成员 float radius;/float radius;/属性或成员属性或成员 double getArea()/double getArea()/方法方法 return radius*radius*3.1415926;return radius*radius*3.1415926;public class public cl
14、ass RectangleRectangle extends Shapes implement Display extends Shapes implement Display /类体类体 /下面的下面的RectangleRectangle类继承了类继承了ShapesShapes父类,实现了接口父类,实现了接口 DisplayDisplay,是一,是一个公共类。个公共类。本讲稿第十六页,共九十八页4.2.1类声明类声明类声明的格式如下:类声明的格式如下:类声明的格式如下:类声明的格式如下:修饰符修饰符修饰符修饰符 class class 类名类名类名类名 extends extends 超类名
15、超类名超类名超类名 implements implements接口名列表接口名列表接口名列表接口名列表 可能的选项有:可能的选项有:可能的选项有:可能的选项有:publicabstract|final class publicabstract|final class 类名类名类名类名 extends extends 超类名超类名超类名超类名 implements implements 接口名列表接口名列表接口名列表接口名列表 public(public(公共公共):publicpublic修饰的类能被所有的类访问。修饰的类能被所有的类访问。abstract(abstract(抽象抽象):abs
16、tractabstract修饰的类不能被实例化,它包含修饰的类不能被实例化,它包含 有未实有未实现的方法。现的方法。final(final(最终最终):finalfinal修饰的类不能被继承,即不能有子类。修饰的类不能被继承,即不能有子类。注意:注意:abstractabstract和和finalfinal不能同时作为一个类的修饰符。不能同时作为一个类的修饰符。本讲稿第十七页,共九十八页4.2.1类声明类声明类名:类名:类名:类名:习惯上类名的第一个字母大写习惯上类名的第一个字母大写,但这不是必须的。类的名字不能是但这不是必须的。类的名字不能是Java Java 中的关键字中的关键字,要符合标
17、识符规定要符合标识符规定,即名字可以由字母即名字可以由字母,下划线下划线,数字数字或美圆符号组成或美圆符号组成,并且第一个字符不能是数字。但给类命名时并且第一个字符不能是数字。但给类命名时,最好遵守如最好遵守如最好遵守如最好遵守如下习惯下习惯下习惯下习惯:如果类名使用拉丁字母如果类名使用拉丁字母,那么名字的那么名字的首写字母使用大写字首写字母使用大写字首写字母使用大写字首写字母使用大写字母母,例如例如HelloHello、TimeTime、PeoplePeople等。等。类名最好类名最好见名知意见名知意见名知意见名知意,当类名由几个当类名由几个”单词单词”复合而成时复合而成时,每个单词的每个单
18、词的首写字母使用大写首写字母使用大写,如如BeijingTimeBeijingTime、AmericanMapAmericanMap、ChongQingChongQing,CarNumberCarNumber等。等。本讲稿第十八页,共九十八页4.2.1类声明类声明extends(extends(继承继承继承继承):extendsextends保留字用来表明新创建的类继承哪个类,被继承的类称为保留字用来表明新创建的类继承哪个类,被继承的类称为此类的父类。此类的父类。extendsextends后面只能跟一个父类名。后面只能跟一个父类名。implements(implements(实现实现实现实现
19、):用来表明这个类实现了哪些接口,接口名可以有多个。用来表明这个类实现了哪些接口,接口名可以有多个。例如:下面的类是合法的:例如:下面的类是合法的:class class MyC1assMyC1ass /空类,没有任何用处,但是合法空类,没有任何用处,但是合法 又如:下面的又如:下面的RectangleRectangle类继承了类继承了ShapesShapes父类,实现了接口父类,实现了接口DisplayDisplay,是一个公共类。是一个公共类。public class public class RectangleRectangle extendsextends Shapes Shapes
20、implementimplement Display Display /类体类体 本讲稿第十九页,共九十八页4.2.2类体类体 类体中定义了该类所有的成员变量和该类所支持的方法,其格式类体中定义了该类所有的成员变量和该类所支持的方法,其格式说明如下:说明如下:成员变量说明成员变量说明成员变量说明成员变量说明 成员方法说明成员方法说明成员方法说明成员方法说明 本讲稿第二十页,共九十八页4.2.2类体类体 类体:类体:类体:类体:public|protected|private static public|protected|private static final transient volat
21、ile final transient volatile type variableName;type variableName;/成员变量成员变量成员变量成员变量public|protected|private staticpublic|protected|private staticfinal|abstract native synchronizedfinal|abstract native synchronizedreturnType methodName(paramList)throws returnType methodName(paramList)throws exceptionL
22、istexceptionListstatements statements /成员方法成员方法成员方法成员方法 本讲稿第二十一页,共九十八页4.2.2类体类体 1 1成员变量说明成员变量说明成员变量说明成员变量说明 成员变量又称值域。成员变量的说明类似于方法的局部变量成员变量又称值域。成员变量的说明类似于方法的局部变量说明,所不同的是,成员变量定义在类中,是类成员的一部分,说明,所不同的是,成员变量定义在类中,是类成员的一部分,整个类都可以访问它。整个类都可以访问它。JavaJava中成员变量说明形式如下:中成员变量说明形式如下:修饰符修饰符修饰符修饰符 成员变量类型成员变量类型成员变量类型成
23、员变量类型 成员变量名列表成员变量名列表成员变量名列表成员变量名列表;例如:例如:private int number;private int number;成员变量的修饰符有以下几种:缺省访问修饰符、成员变量的修饰符有以下几种:缺省访问修饰符、publicpublic、protectedprotected、privateprivate、finalfinal、staticstatic、transienttransient和和volatilevolatile。关于这些修饰关于这些修饰符的含义以后将讲到。符的含义以后将讲到。本讲稿第二十二页,共九十八页4.2.2类体类体 2 2成员变量使用成员变量
24、使用成员变量使用成员变量使用 类的成员变量在定义它的类内部,可以直接通过成员变量名来访问。类的成员变量在定义它的类内部,可以直接通过成员变量名来访问。类的成员变量在定义它的类内部,可以直接通过成员变量名来访问。类的成员变量在定义它的类内部,可以直接通过成员变量名来访问。class Circle class Circle static final float PI=3.1415926f;/static final float PI=3.1415926f;/常量常量常量常量 private Point center;/private Point center;/属性或成员属性或成员属性或成员属性或
25、成员 private float radius;/private float radius;/属性或成员属性或成员属性或成员属性或成员 static Color color;static Color color;public float area;public float area;float getArea()/float getArea()/方法方法方法方法 return radius*radius*PI;/return radius*radius*PI;/内部访问成员变量内部访问成员变量内部访问成员变量内部访问成员变量 本讲稿第二十三页,共九十八页4.2.2类体类体 如果从类的外部访问,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 04 面向 对象 技术 基础 精选 文档
限制150内