第4章 面向对象程序设计基础 源代码PPT课件

合集下载

第四章Java面向对象特性课件

第四章Java面向对象特性课件
第4章 Java面向对象特性
对象的基本概念
面向对象程序语言三个关键特点: 封装 ( Encapsulation ) 多态 ( Polymorphism ) 继承 ( Inheritance )
1
第4章 Java面向对象特性
抽象数据类型
基本数据类型和聚集类型的变量与一些操作 (如+, -)之间不需特殊的联系。 在面向对象语言中,在数据类型的声明与操作
数据隐藏与封装举例
class Date{
private int day, month, year;
void setDate( int a, int b, int c){
day = a;
month = b;
year = c ;
}
}

Date d1;
d1=new Date( ); d1.setDate(30,9,2001);
4
第4章 Java面向对象特性
对象生命周期
创建对象 使用对象 清除不用的对象
5
第4章 Java面向对象特性
创建对象
创建对象的三个步骤: 声明 (Declaration ) 实例化(Instantiation) 初始化(Initialization)
例: Point origin_one ; origin_one = new Point(23, 94); Rectangle rect_one = new Rectangle(origin_one, 100, 200); Rectangle rect_two = new Rectangle(50, 100);
public void changeObjValue( PassTest ref){
ref.ptValue = 99.0f; }

第4章面向对象基础PPT课件

第4章面向对象基础PPT课件
在面向对象的编程语言中,类是一个独立的程序单位, 是具有相同属性和方法的一组对象的集合。类的概念使 我们能对属于该类的全部对象进行统一的描述。例如, “树具有树根、树干、树枝和树叶,它能进行光合作 用”。
4.1.3 类
描述一个类需要指明下述三个方面内容: (1) 类标识:类的一个有别于其他类的名字。这是必不 可少的。 (2) 属性说明:用来描述相同对象的静态特征。 (3) 方法说明:用来描述相同对象的动态特征。
1.访问控制权限
(1)public 公共变量
由public修饰的变量称为公共变量,,可被任何包中 的任何类访问,只有在确认任何外部访问都不会带来 不良后果的情况下才将成员声明为公共的。公共变量 对任何类都是可见的,因此它没有秘密可言,不具有 数据保护功能。
(2)private私有变量
由private修饰的变量称为私有变量,只能被声明它的 类所使用,拒绝任何外部类的访问。私有变量是不公 开的,它们得到了最好的保护,这是对类进行封装时 使用的主要方法。
4.1.2 对象特征
(2) 属性:即一组数据,用来描述对象的静态特征。例 如,汽车的颜色、型号、马力、生产厂家等。在Java程序 中,把这一组数据称为数据成员。
(3) 方法:也称为服务或操作,它是对象动态特征(行为) 的描述。每一个方法确定对象的一种行为或功能。例如, 汽 车 的 行 驶 、 转 弯 、 停 车 等 动 作 可 分 别 用 move( ) 、 rotate( )、stop( )等方法来描述。为避免混淆,本书中把 方法称为成员方法。
4.1.2 对象
只要仔细研究程序设计所面对的问题域——客观世界,我们 就可以看到:客观世界是由一些具体的事物构成的,每个事物 都具有自己的一组静态特征(属性)和一组动态特征(行为)。

java面向对象程序设计第2版第4章_类与对象

java面向对象程序设计第2版第4章_类与对象
整理课件
§4.1 编程语言的几个发展阶段
◆ 面向机器语言 ◆面向过程语言 ◆面向对象语言
面向对象编程主要体现下列三个特性 ◇封装性 ◇继承 ◇多态
整理课件
§4.2 类
类是组成Java程序的基本要素。类封装了 一类对象的状态和方法。类是用来定义对象的 模板。
类的实现包括两部分:类声明和类体。基 本格式为:
整理课件
§4.4 参数传值
§4.4.1 基本数据类型参数的传值
对于基本数据类型的参数,向该参数传递 的值的级别不可以高于该参数的级别 。
例4-4
整理课件
§4.4.2 引用类型参数的传值
当参数是引用类型时,“传值”传递的是变 量中存放的“引用”,而不是变量所引用的实体。
例4-5
整理课件
§4.4.3 可变参数
我们在任何一个类中用类Tom 创建了一个对象 后 , 该 对 象 能 访 问 自 己 的 public 变 量 和 类 中 的 public方法(也可以通过类名来操作成员变量、 方法) 。
整理课件
§4.10.3 友好变量和友好方法
当在另外一个类中用类Tom 创建了一个对象 后,如果这个类与Tom类在同一个包中,那么该 对象能访问自己的友好变量和友好方法。
1.通过使用运算符“.” 对象操作自己的变量 (对象的属性) 2.使用运算符“.”,对象调用类中的方法(对 象的功能)
例4-3
整理课件
§4.3.3 对象的引用和实体
当用类创建一个对象时,类中 的成员变量在分配内存空间,这 些内存空间称作该对象的实体或 对象的变量,而对象中存放着引 用。
一个类创建的两个对象,如果 具有相同的引用,那么就具有完 全相同的实体。
2.类名最好容易识别、见名知意。当类名由几个“单词”复 合而成时,每个单词的首字母使用大写。

第4章 程序设计基础

第4章  程序设计基础

计算机科学导论
2
4.1 程序设计
程序设计是指用计算机语言对所要解决的问题中的数 据以及处理问题的方法和步骤所做的完整而准确的描述的 过程。程序设计步骤如下: 1. 确定要解决的问题。 2. 分析问题。 高质量程序设计目标是结构 化程度高、可读性好、效率 3. 选择计算方法。 高、可靠性高、便于维护。 4. 确定数据结构和算法。 5. 绘制流程图。 6. 编写程序。 7. 调试并测试程序。 8. 整理资料,交付使用。
2019/3/10
计算机科学导论
34
4.3.1 基本概念
(2) 数据的物理结构
数据的物理结构是指逻辑结构在计算机存储 器中的表示。 数据的物理结构主要有四种,分别是顺序结 构、链表结构、索引结构及散列结构。
2019/3/10
计算机科学导论
35
4.3.1 基本概念
①顺序结构
把所有元素存放在一片连续的存储单元中,逻辑 上相邻的元素存储在物理位置相邻的存储单元中,由 此得到的存储表示称为顺序存储结构。 程序设计语言中的数组常使用顺序存储结构来实
2019/3ቤተ መጻሕፍቲ ባይዱ10
计算机科学导论
26
4.2.5 程序设计举例
例4.1 输入三角形的3个边长a,b和c ,求三角形面积。
area s(s a)(s b)(s c)
s ( a b c) / 2
则计算该三角形的面积的C语言源程序如下:
#include<stdio.h> #include<math.h> void main() { float a,b,c,s,area; //变量定义 scanf(“%f,%f,%f”,&a,&b,&c); //输入语句 s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s); printf(“area=%7.2f\n”,area); //输出语句 27 } 2019/3/10 计算机科学导论

四章面向对象基础ppt课件

四章面向对象基础ppt课件
– (1)模块化:一个对象的源代码的编写和维护独立于其 他对象的源代码,而且,对象的使用也很方便;
– (2)信息隐蔽:每个对象都有一个公共接口使得其他对 象可以与其通信,但对象的私有信息和方法则由它自己 维护,并且改变这些私有信息和方法不会影响到使用它 的其他对象。
2020/2/29
18
3、类
• 在现实世界里,有许多同“种类”的对象。而 这些同“种类”的对象可被归类为一个“类”
看成是由许多大小不同的对象所组成的。 • 对象可以是有生命的个体,比如一个人或一只鸟。
2020/2/29
7
对象
• 对象也可以是无生命的个体,比如一辆汽车或 一台计算机。
2020/2/29
8
对象
对象还可以是一件抽象的概念,如天气的变化或者 鼠标所产生的事件,或者是一个自然数。
2020/2/29
9
对象的属性和行为
2020/2/29
34
聚合关系(整体和部分)
• 聚合关系:XX是XXX的一部分 • 聚集(松耦),组合(紧密)
2020/2/29
35
实现关系
• 实现关系是多态的基础
2020/2/29
36
多态
2020/2/29
37
4.2 类
类是现实世界某些对象的共同特征(属性和操作)的 表示,对象是类的实例。
抽象

2020/2/29
14
2、对象的封装
– 一个对象的变量(状态)构成这个对象的核心,一般不将 其对外公布,而是将对变量进行操作的方法对外公开,这 样变量就被隐藏起来。
– 这种将对象的变量置于方法的保护之下的方式称为封装。
变量
外部访问
方法

第3章面向对象程序设计基础精品PPT课件

第3章面向对象程序设计基础精品PPT课件
▪ 在类声明之后,一对大括号括起来的部分称为类体。 类体中通常包括两部分内容,一是变量的声明,二 是方法的定义。其中,类中声明的变量又称为成员 变量或域变量,用于描述该类对象的属性;类中定 义的方法称为成员方法,成员方法用于描述该类对 象的行为。
3.2.2案例2:成员变量
▪ 类中声明的变量称为成员变量,成员变量声 明的一般语法格式如下:
▪ 面向对象程序设计方法以客观世界存在的事物为基础,采用 人类自然界思维模式,对问题(软件系统)进行抽象,从而构 造软件系统。面向对象程序设计的主要特点包括封装、继承 和多态。
▪ 1.封装 ▪ 所谓封装是指将数据和对数据的操作处理放在一起,封装是
面向对象程序设计的核心思想之一。其优势在于:一是信息 的隐藏;二是提高程序的可维护性 。 ▪ 2.继承 ▪ 继承是根据已有类创建新类的一种方法,也是面向对象程序 设计体现代码复用的关键特性。 ▪ 3.多态性 ▪ 所谓多态性是指使用相同接口完成不同操作或操作不同类型 数据,它是面向对象程序设计另一个重要特征。
3.2 类与对象
▪ 类和对象是面向对象程序设计最重要的两个概念。 类是一种数据类型,每个类都有一个特定的数据结 构,用于描述一类事物(对象)共有的属性和行为。 面向对象程序是由类构成的,面向对象编程的实质 就是类设计的过程。对象是类的一个特定实例,类 是创建对象的模型。对象的属性通过类中成员变量 来描述,对象的行为通过类中成员方法来描述,通 过成员方法对变量的操作实现软件系统功能。
▪ 例如: ▪ public class Hello //声明一个公共类Hello ▪ class MyFrame extends JFrame //声明类MyFrame
继承JFrame类 ▪ class MyThread implements Runnable //声明类

《Java程序设计》电子课件

《Java程序设计》电子课件

this.copper=c; // 给类成员变量z赋值
}
2024/10/20
宋波,李晋,李妙妍,张悦
String getModel( ) { return “金牌 = ”+gold+“ 银牌
=”+silver+“ 铜牌="+copper; }
2024/10/20
宋波,李晋,李妙妍,张悦
public static void main( String args[ ]) {
5. return color;
6. }
7. public float count(){ 8. int num; 9. if(num<0)
• 错误语句,因为局 部变量num还没有
10. return 0;
被赋值就使用
11. else
12. return price*num;
13. } 2024/10/20
2024/10/20
宋波,李晋,李妙妍,张悦
2. 类体
① 构造和初始化新对象的构造方法; ② 表示类及其对象状态的变量; ③ 实现类及其对象的方法; ④ 进行对象清除的finalize()方法。
2024/10/20
宋波,李晋,李妙妍,张悦
3.1.2 成员变量与局部变量
• 成员变量(类):
➢ 在类体中声明的变量,且不属于任何 一个方法时。
Olympics2 o2=new Olympics2( );
System.out.println("Before changModel:"+o2.getModel());
o2.changeModel(100,100,100);
System.out.println("After changeModel:"+o2.getModel());

第4章面向对象程序设计基础Java程序设计及应用精品PPT课件

第4章面向对象程序设计基础Java程序设计及应用精品PPT课件
规范说明
常用方法:部分常见方法如表4-1所示
4.3.2 方法调用
方法的调用即该方法的调用运行。例如isPfime ();
【例4-4】调用业已定义的方法ScircleArea,计算面积。
4.3.3 参数传递
参数传递方式有传值与传地址两种。
若方法的参数为简单数据类型,则传值,即将实参的值传递给形参 若方法的参数为复合数据类型(对象),则传地址,即将实参的地址
面向对象方法
4.1.2 面向对象软件的开发过程
面向对象方法的程序开发过程可以大体划分为面向对象的分析 (Object Oriented Analysis,OOA)、面向对象的设计(Object Oriented Design , OOD ) 、 面 向对象的实 现 ( Object Oriented Programming,OOP)三个阶段。
或可一句语句直接完成:
» 类名 对象名=new类名([参数表]);
使用new后,java实际上完成了如下操作:
(1)在指定类上创建了一个对象;
(2)为该对象分配了引用内存空间(类似于数组分配内存空间);
(3)执行由指定类所定义的构造方法完成一系列初始化工作。
例如,系统已创建了Person类,利用它可生成两个对象 Mali和 John:
Person Mali;
\\ Mali对象两句语句完成
Mali=new Person();
Person John=new Person();
\\ John对象一句语句完成
29.10.2020 第4章 面向对象程序设计基础
8
4.4 对象与构造方法
4.4.2 对象的引用
Java中,当用类创建一个对象后,该对象就拥有了自己的成员变量 和方法,对象通过使用这些方法可以产生一定的行为。即可以达到 通过引用对象成员变量和方法的形式来引用对象。

自考Java程序语言设计(一)第四章面向对象程序设计讲义

自考Java程序语言设计(一)第四章面向对象程序设计讲义

第四章面向对象程序设计目录第一节类和对象第二节定义方法第三节静态成员第四节包装类01 类和对象类的定义类的定义也称为类的声明。

类中含有两部分元素,分别是数据成员变量和成员方法。

类定义的一般格式如下。

修饰符 class 类名 [extends父类名]{修饰符类型成员变量1;修饰符类型成员变量2;……修饰符类型成员方法 1 (参数列表){方法体}……}其中,class是关键字,表明其后定义的是一个类。

含有class的这一行称为类头,后面大括号括住的部分称为类体。

class前的修饰符可以有多个,用来限定所定义的类的使用方式。

类名是用户为该类所起的名字,它必须是一个合法的标识符,并尽量遵从命名约定。

extends是关键字。

如果所定义的类是从某一个父类派生而来,那么,父类的名字要写在extends之后。

类定义中的数据成员变量可以有多个。

成员变量前面的类型是该变量的类型;类中的成员方法也可以有多个,其前面的类型是方法返回值的类型。

如果没有返回值,则写void。

方法体是要执行的真正语句。

在方法体中还可以定义该方法内使用的局部变量,这些变量只在该方法内有效。

方法的参数列表中可以含有0 个或多个参数,每个参数的前面要指明该参数的类型。

类定义中的修饰符是访问权限修饰符,包括 public、private和protected,也可以不写,表示是默认修饰符。

它们既可以用来修饰类,又可以修饰类中的成员,修饰符决定所修饰成员在程序运行时被访问的方式。

具体来说,用public修饰的成员表示是公有的,也就是它可以被其他任何对象访问。

类中限定为private的成员只能被这个类本身访问,在类外不可见。

用 protected修饰的成员是受保护的,只可以被同一包及其子类的实例对象访问。

如果不写任何修饰符,则表明是默认的,相应的成员可以被所在包中的各类访问。

类的示例使用类可以构造所需的各种类型。

例如,程序中要说明日期这个类型,它含有3个成员变量:日、月、年,分别用3个整数来表示。

《面向对象程序设计的基本知识》ppt课件1

《面向对象程序设计的基本知识》ppt课件1

§1.3 面向对象程序设计的 特性
1.封装性 面向对象程序设计的封装机制是通过对象来实现 的。对象中的私有成员是隐蔽的,对象以外的访问 被拒绝,而公有成员则提供了对象与外界的接口, 使外界与对象发生联系。 接口是把隐式公共方法和属性结合起来具有特定 功能的一个集合。例如,可以将较一般用途的属性 Color和方法Drive()、Stop()组合到一个接口 IVehicle中,然后可以在Car对象或Bicycle对象 上使用该接口。接口不能单独存在,一个类可以支 持多个接口,多个类也可以支持相同的接口。
§1.2 面向对象的基本概念
1.2.1对象、消息和类 2.消息 在面向对象程序设计中,消息分为公有消息和私 有消息两类。若有一批消息同属于一个对象,则其 中由外界对象直接向其发送的部分称为对象类中,消息 print() 为公有 消 息 , 而 printName() 、 printage() 、 printadd()、printsex()为私有消息。
§1.2 面向对象的基本概念
1.2.1对象、消息和类 1.对象 面向对象中的对象是由描述自身状态特征(属性) 的 数据及定义在该数据上可对这些状态施加的一组 操作组成的实体,是数据单元和过程单元的集合体。
§1.2 面向对象的基本概念
1.2.1对象、消息和类 1.对象 在计算机中,对象可看成是存储器中一个可标识 的区域,是一个数值的集合。在面向对象程序设计 中,对象用一个运行中的存储单元来存放,其状态 用属性的值来表征,可以是初等数据类型(整型、 实型、字符型等),也可以是用户自定义的数据类 型(结构、枚举等),还可以是对象(如“人”这 个对象,其状态属性“家庭成员”可能是另一个对 象)。
§1.2 面向对象的基本概念
1.2.1对象、消息和类 1.对象 对象作为构成和支撑整个面向对象程序设计最重 要的细胞和基石,具有模块独立性(一个对象是一 个独立存在的模块)、动态连接性(通过消息激活 机制使对象之间动态联系)和易维护性(对象的功 能和实现细节局限于模块内部)三个特征。 现实世界中一切事物都是对象,在解决实际问题 时,首先要分析对象,这直接影响到面向对象程序 设计的质量。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖子类(Subclass) 子类是作为另一个类的扩充或修正而定义的一个类。
bicycle (Super class)
Subclass
Mountain bikes
第 11 页
Racing bikes
Tandem bikes
16.09.2020
面向对象的概念
❖继承(Inheritance)
一个类从另一个类派生出来的过程叫继承。这个类叫子类 (派生类),而被继承的类叫该类的超类(父类) 继承的子类可利用父类中定义的方法和变量,就像它们属 于子类本身一样。也可以改变继承来的方法和变量。
面向对象的概念
❖类的变量(Class Variables):指对象的所具有的状态或特征。
❖类的方法(Class Methods):指对象的功能单元。
❖消息(Message):
软件对象通过相互间传递消息来相互作用和通信,一个消 息由三部分组成:
1. 发送消息的对象
消息
2. 接收发送消息
(调用发送对象的方法)
class Car { int color_number;
int door_number; int speed;
public void push_break() { …
} public void add_oil() { … } }
第 12 页
class Trash_Car extends Car {
第1页
16.09.2020
面向对象的概念
❖ 对象(Object) 有两个层次的概念: ➢ 现实生活中对象指的是客观世界的实体,它由状态(State) 和行为(Behavior)构成 ; ➢ 程序中对象是现实世界对象的模型,是一组变量和相关 方法的集合。变量(Variables)表示现实对象的状态,方 法(Methods)表现现实世界对象的行为,这些变量和方法叫 做这个对象的成员(Member)。
❖封装(Encapsulation )
封装把对象的所有组成部分组合在一起。封装定义程序 如何引用对象的数据,实际上是用方法将类的数据隐藏起来, 控制用户对类的修改和访问数据的程度。封装利于模块化和 信息隐藏。
对象A
公有数据 私有数据
方法
数据 方法
对象B
第 10 页
16.09.2020
1、面向对象的概象的方法,就是使我们分析、设计和实现一个系 统的方法尽可能自然地使用我们在生活中用到的以对象为中 心的思想,分析、认识、设计一个系统的方法。包括:
➢ 面向对象的分析(OOA, Object-Oriented Analysis) ➢ 面向对象的设计(OOD, Object-Oriented Design) ➢ 面向对象的程序设计(OOP, Object-Oriented Program) ❖面向对象技术主要围绕以下几个概念讨论: ➢对象的封装(抽象数据类型)、类与对象、 继承性、多态 性。
相似的对象可以归并到同一个类中去,就像传统语言中的 变量与数据类型关系一样。
❖对象
程序中的对象是类的一个实例,是一个软件单元,它由一 组结构化的数据和在其上的一组操作构成。
第4页
16.09.2020
面向对象的概念
……
第5页
Car car1; Car car2; …… Car carN;
16.09.2020
3. 方法需要的参数
对象B
第6页
对象 A
16.09.2020
面向对象的概念
❖一个例子
class Hello
变量
方法
{
private String s;
showString()
public void showString() {
方法
System.out.println(s); changeString()
int day, month, year; 如果要表示2个人的生日,就要使用6个变量: int mybirthday, mybirthmonth, mybirthyear; int yourbirthday,yourbirthmonth,yourbirthyear;
第8页
16.09.2020
面向对象的概念
double amount;
public void fill_trash() {
变量
第2页
方法
16.09.2020
面向对象的概念
可将现实生活中的对象经过 抽象,映射为程序中的对象。 对象在程序中通过一种抽象数 据类型来描述,就称为类 (Class)。
抽象数据类型
Class Car {
int color_number; int door_number; int speed;
现实生活中的对象
将变量和方法封装在一个类 class BirthDate {
中,可以对成员变量进行隐藏, private int day,month,year;
外部对类成员的访问都通过方 法进行,能够保护类成员不被 非法修改。
public int tomorrow() { ……
} }
BirthDate date;
BirthDate mybirth, yourbirth;
}
public void changeString(String str)
{
s = str;
}
}
❖在程序中操作对象是类的一个实例。 创建一个对象: Hello obj=new Hello(); 调用方法: obj.showString();
第7页
16.09.2020
面向对象的概念
❖ 为什么使用类
采用简单数据类型表示现实世界中概念存在一些局限性。 例如:采用int型数据表示一个日期概念,需要使用3个变 量:
void brake() { … } void speedUp() {…} void slowDown() { … } }
第3页
16.09.2020
面向对象的概念
❖ 类(Class) 类是描述对象的“基本原型”,它定义一类对象所能拥有 的数据和能完成的操作。在面向对象的程序设计中,类是 程序的基本单元。
已知当前日期对象,求第2天的日期对象:
date.day =date.day+1;
如果date.day已经为31,操作结果是非法状态。可以定义一 个成员方法tomorrow(),求第2天的日期对象。外部要获得 当前日期的后一天时,只要调用:date.tomorrow();
第9页
16.09.2020
面向对象的概念
相关文档
最新文档