
第4章类与对象 主讲:王绍卿 E-mail: wsq0533@163.c0m 办公室:9212(东) 课件邮箱:javakejian(@163.com 密码:javakj
1 第4章 类与对象 主讲:王绍卿 E-mail:wsq0533@163.com 办公室:9-212(东) 课件邮箱:javakejian@163.com 密码:javakj

通知 ■本周第2次课上机。 ■上机地点:15号教学楼5楼机房 国子 实验内容见:教务处网络教学平台 http://etc.sdut.edu.cn ■每上3次理论课,上机1次。即:第2、4、7、9、 11、13、15、17周的第2次课上机
通知 ◼本周第2次课上机。 ◼上机地点:15号教学楼5楼机房 ◼实验内容见:教务处网络教学平台 http://etc.sdut.edu.cn ◼每上3次理论课,上机1次。即:第2、4、7、9、 11、13、15、17周的第2次课上机

导读 面向对象编程主要体现下列三个特性。 ◇封装性 ◇继承 ◇多态
3 导读 面向对象编程主要体现下列三个特性。 ◇封装性 ◇继承 ◇多态

§4.1从抽象到类 抽象的关键是抓住事物的两个方面:属性和功能。 抽象的目的是从具体的实例中抽取共有属性和功 能形成一种数据类型。 2025/4/2
2025/4/2 4 §4.1

§4.2 类 类是组成Java程序的基本要素。类封装了一 类对象的状态和方法。类是用来定义对象的模 板。 类的实现包括两部分:类声明和类体。基本 格式为: class类名{ 类体的内容 2025/4/2
2025/4/2 5 §4.2 类 类是组成Java程序的基本要素。类封装了一 类对象的状态和方法。类是用来定义对象的模 板。 类的实现包括两部分:类声明和类体。基本 格式为: class 类名 { 类体的内容 }

§4.2.1类声明 ◆类声明:class类名 例如: class Vehicle } 其中的“class Vehicle'称作类声明;“Vehicle”是类名。 ◆给类命名时,遵守下列编程风格(这不是语法要求 的,但应当遵守): 1.如果类名使用拉丁字母,那么名字的首字母使用大写字母。 2.类名最好容易识别、见名知意。当类名由几个“单词”复 合而成时,每个单词的首字母使用大写。 2025/4/2
2025/4/2 6 §4.2.1 类声明 ◆类声明 :class 类名 class Vehicle { . } class Vehicle” Vehicle” ◆ 给类命名时,遵守下列编程风格(这不是语法要求 的,但应当遵守): 1.如果类名使用拉丁字母,那么名字的首字母使用大写字母。 2.类名最好容易识别、见名知意。当类名由几个“单词”复 合而成时,每个单词的首字母使用大写

§4.2.2类体 ◆ 类声明之后的一对大括号“{”,“}”以及它 们之间的内容称作类体,大括号之间的内容称作 类体的内容。 ◆类体的内容由两部分构成: ·变量的声明,用来刻画属性或特征; ·方法的定义,用来刻画行为或功能。 2025/4/2
2025/4/2 7 §4.2.2 类体 ◆ 类声明之后的一对大括号“{” , “}”以及它 们之间的内容称作类体,大括号之间的内容称作 类体的内容。 ◆类体的内容由两部分构成: • 变量的声明,用来刻画属性或特征; • 方法的定义,用来刻画行为或功能

§4.2.2类体 class类名 数据类型 成员变量1; 数据类型成员变量2; 数据类型成员方法1(形式参数) 数据类型成员方法2(形式参数)
8 §4.2.2 类体 class 类名 { 数据类型 成员变量1; 数据类型 成员变量2; 数据类型 成员方法1( 形式参数 ) { . } 数据类型 成员方法2( 形式参数 ) { . } }

例4-1 Vehicle.java public class Vehicle{ double speed; /变量声明部分,刻画速度 int power; /变量声明部分,刻画功率 void speedUp(ints){ 方法定义,刻画加速功能 speed=speed+s; void speedDown(intd){∥方法定义,刻画减速功能 speed=speed-d; } void setPower(int p){ power-p; int getPower(){ return power, } double getSpeed(){ return speed; 9
9 例4-1 Vehicle .java public class Vehicle { double speed; //变量声明部分,刻画速度 int power; //变量声明部分,刻画功率 void speedUp(int s) { //方法定义,刻画加速功能 speed=speed+s; } void speedDown(int d) { //方法定义,刻画减速功能 speed=speed-d; } void setPower(int p) { power=p; } int getPower() { return power; } double getSpeed() { return speed; } }

封装的两个含义 ■ 把抽象出的对象的属性和行为结合在一起,形 成一个不可分割的独立单位 ■尽可能隐藏对象的内部细节,对外形成一道屏 障,对类的属性和行为起到保护作用,但要提 供类的内部与外部的信息交流的适当接口。 ●例如,一个指针式钟表,时、分、秒是它的属性, 显示时间和调整时间是它的行为。可以通过它的行 为可以知道时间,时间不准确了还可以调整它的时、 分属性。但是调整时间时,只能按照时针和分针相 对固有的频率进行调整,而不能单独调整时针和分 针,从而对时间属性起到保护作用
封装的两个含义 ◼把抽象出的对象的属性和行为结合在一起,形 成一个不可分割的独立单位 ◼尽可能隐藏对象的内部细节,对外形成一道屏 障,对类的属性和行为起到保护作用,但要提 供类的内部与外部的信息交流的适当接口。 ⚫例如,一个指针式钟表,时、分、秒是它的属性, 显示时间和调整时间是它的行为。可以通过它的行 为可以知道时间,时间不准确了还可以调整它的时、 分属性。但是调整时间时,只能按照时针和分针相 对固有的频率进行调整,而不能单独调整时针和分 针,从而对时间属性起到保护作用