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