java3面向对象程序设计_1
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
26
类成员和实例成员
在类的定义中,成员变量和成员方法前 面
• 带有static的为类属性和类方法; • 不带static的为实例属性和实例方法。
class Animal{ int weight; String colour; static int count=0;
类类属属性 性和类方法
类方法
Animal( ){
++count;
System.out.println("The total number of
Animal is:"+count); } public void eat( ){
成员属性 成员方法
System.out.println("Eating"); }
public static void move( ){
• 对象和对象之间是通过传递消息来完成相互 通信的。
• 一个消息由三方面内容组成: 1)消息的接收者,即消息的目标对象; 例2如):接一收辆自对行象车采放在用车的棚方中并法没;有什么用,当我们人骑 上3它),执并行加速方时法才所体现需它用的的作用参,数其(中P接ar收a者m(e自te行r车s))。,
x = newX;
y = newY; 构造方法的三个基本特点
}
父类和子类的构造方法有一定关联
}
(参见课本P62)
默认的构造方法
• 如果没有显式地定义类的构造方法,则系统会为该类定 义一个默认的构造方法。该构造方法不含任何参数。
--这个默认的构造方法首先调用其父类的不含任何参数的 构造方法,然后初始化新生成的实例的各个成员变量
毕业答辩
只能通过接口 来操作对象, 不能随意修改 内部数据
“学生对象”的内部数据:
个人基本信息(年龄、身高、家庭信息) 在校情况(专业,班级,宿舍,任职等) 选修课表 成绩清单(考试,课程设计,毕业设计成绩)
面向对象的基本特征:继承
家电类(父类)
数据:功率 品牌 型号
方法:启动,停止
继承
自动拥有 父类的数 据,方法
{
System.out.println("Moving");
}
}
Animal 的成员 方法
类的成员
成员变量(也称成员域) 成员方法
从类实例化一个对象
21
成员变量
• 成员变量是类的属性,声明的一般格式为: • [变量修饰符] <成员变量类型> <成员变量名>
• 变量修饰符:public、protected、private、和默认 (friendly)。
Animal can Moving
number of Animal is:"+count);
The total number of Animal is:1}public void eat( ){
The total number of Animal is:2
System.out.println("Eating");}
从众多对象中归纳出“类”
电 品 型 行电品型行视牌号为电品型行视牌号为机:::视牌号为机:::飞开A3调4机:::开BL2调利声寸关1GC4东开声寸浦关音高4选芝音寸纯关清颜选频液平颜选色频道晶色频道道 调声音 颜色
抽象
电视机类 品牌: 型号: 行为:
从类实例化一个对象
类的属性和行为-----类的成员
• 实例变量
• 成员变量
类变量: 静态变量, 用static进行修饰
22
成员方法
• 成员方法定义的类的操作和行为,一般形式为: [方法修饰符] <方法返回值类型> <方法名>([<参数列表>]) {
方法体 } • 成员方法修饰符主要有public、private、protected、final、
static、abstract和synchronized七种,前三种的访问权 限、说明形式和含义与成员变量一致。 • 与成员变量类似,成员方法也分为实例方法和类方法。 如果方法定义中使用了static ,则该方法为类方法。 public static void main(String [] args)就是一个典型的类方 法
(2)对象的使用
对象名.成员变量名;
对象名.成员方法名(参数列表);
(3)对象的销毁
自动垃圾回收机制周期性的释放无用的对象。
(1)对象的创建
• 第一步:进行对象的声明。 一般形式为: <类名> <对象名>;
• 例如: Animal dog; • 第二步:实例化对象,通过运算符new实现
一般形式为: <对象名> =new <类名>; 例如: dog = new Animal( ) ; • 以上两步也可合并:
• eat()是实例方法,只能由类的对象调用 • 也就是只能a1.eat(),或a2.eat()
构造方法
• 构造方法在创建新的实例对象时起作用 • 构造方法通常用来初始化实例对象,例如: 初始
化成员域或设置工作环境
31
构造方法
• 构造方法名称与类名称相同 • 构造方法没有返回类型 • 其任务是在创建对象时初始化其内部状态 • 若无定义系统默认有一个无参构造方法
第3章
面向对象的程序设计
本章总体纲要
• 类、域、方法和实例对象 • 继承性 • 多态性 • 包(package) • 封装性 • 关键字abstract、static、final和this • 接口 • 内部类 • 变量作用域范围和参数传递方式 • 面向对象程序设计基本思想
2
3.1 类、域、方法和实例对象
• 继承父类的类称为子类
• 执行继承时,子类将获得父类的属性,并具
有自身特有的属性。
职员类,具
工人类,继承了父 类的姓名和性别属 性外还包含类别和 是否有服装津贴属性
Emoloyee类: name sex
有姓名和性 别两个属性
Worker类: category ressAllowance
主任类,还包含 别和是否配备 交通工具属性
23
类成员的常用修饰符及访问范围
24
思考
• 开发一个在线考试系统,需要创建哪些类? • 这些类的成员分别有什么?
25
• 试题类(Testquestion类) • 属性:包括试题内容、答案、用户选择的答
案等。 • 方法:获取取试题、设置选择的答案、获取
选择的答案、设置标准答案、获取标准答案、 检查答案正确与否等。
Officer类: empClass vehicle
多继承:一个类有多个父类, 即直接继承多个类
汽车类
汽车属性 汽车行为
多继承
武器类
武器属性 武器行为
注: Java类只 能有一个父类
坦克类
武器属性 武器行为 汽车属性 汽车行为
面向对象的基本特征:多态
启动电视: 显示图像,声 音
家电类(父类)
数据:功率 品牌 型号 方法:启动,停止
属性 行为
成员变量(也称成员域) 成员方法
类的成员
从类实例化一个对象
类
• 类是具有共同 属性和行为的 对象的抽象。
• 类可以定义为 数据和方法的 集合。
• 对象具有特殊 属性和行为方 式的实体。
封装的实体=数据+方 法
类
成员变量
成员方法
抽 象
实 例 化
对象
属性或状态 操作或行为
消息
• 单一对象的存在并没有多大的作用,只有多 个对象相互作用才会完成复杂的行为。
implement关键字 用于实现接口
类体部分定义了该类所包 括的所有成员变量和成员 方法
类的定义 举例
class Animal
{ String name;
Animal的成员变量
int age;
public void eat()
{
System.out.println("Eating");
}
public void move()
System.out.println("Animal can Moving");} }
public class StaticTest1{
public static void main( String args[] ){
System.out.println("The total number
of Animal is:"+ Animal.count);
构造方法
class Point{
构造方法没有返回类型
int x,y;
Point( ) { //不带参数的构造方法
x=0; y=0; }
•构造方法名与类名相同
Point(int ix, int iy) { //带参数的构造方法
x=ix; y=iy;
}
void move( int newX, int newY ){
-- 默认值: 基本数值类型: 0; boolean: false; 引用数据类型: null
--最好自己写构造方法 • 一旦在类中定义了构造方法,系统就不会再创建这个默
认的不含参数的构造方法。
34
3 对象
35
对象的创建
(1) 对象的声明和创建
类名 对象名;
//声明
对象名=new 类名(参数);//创建
<类名> <对象名>=new <类名>
对象的创建(举例)
public static void move( ){
System.out.println("Animal can
Moving"); }
}
实例属性和实例方法
• 与类属性和类方法相比较 ,实例属性和实例方 法必须在实例化变量之后才能使用,
• 将上例中Animal.move()换成Animal.eat(), • 结果如何?为什么?
Animal.move();
class Animal{
Animal a1=new Animal(); int weight;
Animal a2=new Animal(); String colour;
}
static int count=0;
}
Animal( ){
运行结果为:
++count;
The total number of Animal is:0 System.out.println("The total
[类修饰词] class 类名 [extends 父类名] [implements 接口名称列表]
{
类体
} 类的修饰符用于说明 类的性质和访问权限, 包括public、private、 abstract、final。
其中public表示可以被任何其 他代码访问,abstract表示抽 象类19 ,final表示最终类。
电视机类(子类)
数据:功率 品牌 型号 尺寸
虚的冰框对箱:象 该类类(子类)
数据:功率 品牌 型号 容量 功能
方法:启动,停止
方法:启动,停止
选频道 调色彩声音
调温度,开关门
子类继承其父类的所有变量和方法 还可以增加自己需要的变量和方法
新增自己 需要的数 据和方法
类继承的实现
• 被继承的类称为父类
继承
继承
消息:启动
电视机类(子类)
数据:功率 品牌 型号 尺寸
方法:启动,停止
选频道 调色彩声音
冰箱类(子类)
数据:功率 品牌 型号 容量 功能
方法:启动,停止
调温度,开关门
多态:相同的消息被送到不同的对象 启动冰箱:
时有不同的实现
开始制冷
2类
18
类的定义
extends关键字 用于继承类
• 类的定义格式如下:
目标 1 面向对象的概念 • 对象和类的概念 • 面向对象的三大基本特征:封装、继承、多态 2类 • 类的定义 • 类的成员:成员变量和成员方法 • 构造方法 3 对象 • 对象的创建和引用 • Java的垃圾回收机制
3
思考
• 开发一个在线考试系统,需要创建哪些类? • 这些类的成员分别有什么?
4
1 面向对象的概念
5
对象
• 对象是具有某些特殊属性(数据)和行为 方式(方法)的实体。 可以是有生命的个体,比如一个人或一 只老虎。也可以是无生命的个体,比如一 辆汽车或一台计算机。也可以是一个抽象 的概念,如天气的变化或鼠标所产生的事 件。
两个特征:属性(Property)和行为(Behavior) 如:一个人的属性有:姓名、性别、年龄、身高、体重等 行为有:唱歌、打球、骑车、学习等。
3.法多,态但:其在参同数一数个量类与中数可解 不决 能据有其 重类许他 名语 的型多言 问不中题同同名,的而方 且操作过程与返回值也可能会不同。
面向对象的基本特征:封装定义
开电视 关电视 选择频道 调节声音,色彩
电视的
对象接口
内部结构
面向对象的基本特征:封装举例
入学/注册 修课/考试 查询成绩
采用的方法(加速),所需的参数(上升到更高的档位)。
面向对象的基本特征
1.和封属装于:此将数数据据的成操员作(( (12方D) )a法信模t息块a(隐化M藏Oepmerbaetirn)g Method),放在同一个实体(Entity) 或对象中。
(1)实现代码复用
2.继承:父类定义(De(f2i)n简e化)设一计过些程通用的 属性与行为,其子类继续使用。
类成员和实例成员
在类的定义中,成员变量和成员方法前 面
• 带有static的为类属性和类方法; • 不带static的为实例属性和实例方法。
class Animal{ int weight; String colour; static int count=0;
类类属属性 性和类方法
类方法
Animal( ){
++count;
System.out.println("The total number of
Animal is:"+count); } public void eat( ){
成员属性 成员方法
System.out.println("Eating"); }
public static void move( ){
• 对象和对象之间是通过传递消息来完成相互 通信的。
• 一个消息由三方面内容组成: 1)消息的接收者,即消息的目标对象; 例2如):接一收辆自对行象车采放在用车的棚方中并法没;有什么用,当我们人骑 上3它),执并行加速方时法才所体现需它用的的作用参,数其(中P接ar收a者m(e自te行r车s))。,
x = newX;
y = newY; 构造方法的三个基本特点
}
父类和子类的构造方法有一定关联
}
(参见课本P62)
默认的构造方法
• 如果没有显式地定义类的构造方法,则系统会为该类定 义一个默认的构造方法。该构造方法不含任何参数。
--这个默认的构造方法首先调用其父类的不含任何参数的 构造方法,然后初始化新生成的实例的各个成员变量
毕业答辩
只能通过接口 来操作对象, 不能随意修改 内部数据
“学生对象”的内部数据:
个人基本信息(年龄、身高、家庭信息) 在校情况(专业,班级,宿舍,任职等) 选修课表 成绩清单(考试,课程设计,毕业设计成绩)
面向对象的基本特征:继承
家电类(父类)
数据:功率 品牌 型号
方法:启动,停止
继承
自动拥有 父类的数 据,方法
{
System.out.println("Moving");
}
}
Animal 的成员 方法
类的成员
成员变量(也称成员域) 成员方法
从类实例化一个对象
21
成员变量
• 成员变量是类的属性,声明的一般格式为: • [变量修饰符] <成员变量类型> <成员变量名>
• 变量修饰符:public、protected、private、和默认 (friendly)。
Animal can Moving
number of Animal is:"+count);
The total number of Animal is:1}public void eat( ){
The total number of Animal is:2
System.out.println("Eating");}
从众多对象中归纳出“类”
电 品 型 行电品型行视牌号为电品型行视牌号为机:::视牌号为机:::飞开A3调4机:::开BL2调利声寸关1GC4东开声寸浦关音高4选芝音寸纯关清颜选频液平颜选色频道晶色频道道 调声音 颜色
抽象
电视机类 品牌: 型号: 行为:
从类实例化一个对象
类的属性和行为-----类的成员
• 实例变量
• 成员变量
类变量: 静态变量, 用static进行修饰
22
成员方法
• 成员方法定义的类的操作和行为,一般形式为: [方法修饰符] <方法返回值类型> <方法名>([<参数列表>]) {
方法体 } • 成员方法修饰符主要有public、private、protected、final、
static、abstract和synchronized七种,前三种的访问权 限、说明形式和含义与成员变量一致。 • 与成员变量类似,成员方法也分为实例方法和类方法。 如果方法定义中使用了static ,则该方法为类方法。 public static void main(String [] args)就是一个典型的类方 法
(2)对象的使用
对象名.成员变量名;
对象名.成员方法名(参数列表);
(3)对象的销毁
自动垃圾回收机制周期性的释放无用的对象。
(1)对象的创建
• 第一步:进行对象的声明。 一般形式为: <类名> <对象名>;
• 例如: Animal dog; • 第二步:实例化对象,通过运算符new实现
一般形式为: <对象名> =new <类名>; 例如: dog = new Animal( ) ; • 以上两步也可合并:
• eat()是实例方法,只能由类的对象调用 • 也就是只能a1.eat(),或a2.eat()
构造方法
• 构造方法在创建新的实例对象时起作用 • 构造方法通常用来初始化实例对象,例如: 初始
化成员域或设置工作环境
31
构造方法
• 构造方法名称与类名称相同 • 构造方法没有返回类型 • 其任务是在创建对象时初始化其内部状态 • 若无定义系统默认有一个无参构造方法
第3章
面向对象的程序设计
本章总体纲要
• 类、域、方法和实例对象 • 继承性 • 多态性 • 包(package) • 封装性 • 关键字abstract、static、final和this • 接口 • 内部类 • 变量作用域范围和参数传递方式 • 面向对象程序设计基本思想
2
3.1 类、域、方法和实例对象
• 继承父类的类称为子类
• 执行继承时,子类将获得父类的属性,并具
有自身特有的属性。
职员类,具
工人类,继承了父 类的姓名和性别属 性外还包含类别和 是否有服装津贴属性
Emoloyee类: name sex
有姓名和性 别两个属性
Worker类: category ressAllowance
主任类,还包含 别和是否配备 交通工具属性
23
类成员的常用修饰符及访问范围
24
思考
• 开发一个在线考试系统,需要创建哪些类? • 这些类的成员分别有什么?
25
• 试题类(Testquestion类) • 属性:包括试题内容、答案、用户选择的答
案等。 • 方法:获取取试题、设置选择的答案、获取
选择的答案、设置标准答案、获取标准答案、 检查答案正确与否等。
Officer类: empClass vehicle
多继承:一个类有多个父类, 即直接继承多个类
汽车类
汽车属性 汽车行为
多继承
武器类
武器属性 武器行为
注: Java类只 能有一个父类
坦克类
武器属性 武器行为 汽车属性 汽车行为
面向对象的基本特征:多态
启动电视: 显示图像,声 音
家电类(父类)
数据:功率 品牌 型号 方法:启动,停止
属性 行为
成员变量(也称成员域) 成员方法
类的成员
从类实例化一个对象
类
• 类是具有共同 属性和行为的 对象的抽象。
• 类可以定义为 数据和方法的 集合。
• 对象具有特殊 属性和行为方 式的实体。
封装的实体=数据+方 法
类
成员变量
成员方法
抽 象
实 例 化
对象
属性或状态 操作或行为
消息
• 单一对象的存在并没有多大的作用,只有多 个对象相互作用才会完成复杂的行为。
implement关键字 用于实现接口
类体部分定义了该类所包 括的所有成员变量和成员 方法
类的定义 举例
class Animal
{ String name;
Animal的成员变量
int age;
public void eat()
{
System.out.println("Eating");
}
public void move()
System.out.println("Animal can Moving");} }
public class StaticTest1{
public static void main( String args[] ){
System.out.println("The total number
of Animal is:"+ Animal.count);
构造方法
class Point{
构造方法没有返回类型
int x,y;
Point( ) { //不带参数的构造方法
x=0; y=0; }
•构造方法名与类名相同
Point(int ix, int iy) { //带参数的构造方法
x=ix; y=iy;
}
void move( int newX, int newY ){
-- 默认值: 基本数值类型: 0; boolean: false; 引用数据类型: null
--最好自己写构造方法 • 一旦在类中定义了构造方法,系统就不会再创建这个默
认的不含参数的构造方法。
34
3 对象
35
对象的创建
(1) 对象的声明和创建
类名 对象名;
//声明
对象名=new 类名(参数);//创建
<类名> <对象名>=new <类名>
对象的创建(举例)
public static void move( ){
System.out.println("Animal can
Moving"); }
}
实例属性和实例方法
• 与类属性和类方法相比较 ,实例属性和实例方 法必须在实例化变量之后才能使用,
• 将上例中Animal.move()换成Animal.eat(), • 结果如何?为什么?
Animal.move();
class Animal{
Animal a1=new Animal(); int weight;
Animal a2=new Animal(); String colour;
}
static int count=0;
}
Animal( ){
运行结果为:
++count;
The total number of Animal is:0 System.out.println("The total
[类修饰词] class 类名 [extends 父类名] [implements 接口名称列表]
{
类体
} 类的修饰符用于说明 类的性质和访问权限, 包括public、private、 abstract、final。
其中public表示可以被任何其 他代码访问,abstract表示抽 象类19 ,final表示最终类。
电视机类(子类)
数据:功率 品牌 型号 尺寸
虚的冰框对箱:象 该类类(子类)
数据:功率 品牌 型号 容量 功能
方法:启动,停止
方法:启动,停止
选频道 调色彩声音
调温度,开关门
子类继承其父类的所有变量和方法 还可以增加自己需要的变量和方法
新增自己 需要的数 据和方法
类继承的实现
• 被继承的类称为父类
继承
继承
消息:启动
电视机类(子类)
数据:功率 品牌 型号 尺寸
方法:启动,停止
选频道 调色彩声音
冰箱类(子类)
数据:功率 品牌 型号 容量 功能
方法:启动,停止
调温度,开关门
多态:相同的消息被送到不同的对象 启动冰箱:
时有不同的实现
开始制冷
2类
18
类的定义
extends关键字 用于继承类
• 类的定义格式如下:
目标 1 面向对象的概念 • 对象和类的概念 • 面向对象的三大基本特征:封装、继承、多态 2类 • 类的定义 • 类的成员:成员变量和成员方法 • 构造方法 3 对象 • 对象的创建和引用 • Java的垃圾回收机制
3
思考
• 开发一个在线考试系统,需要创建哪些类? • 这些类的成员分别有什么?
4
1 面向对象的概念
5
对象
• 对象是具有某些特殊属性(数据)和行为 方式(方法)的实体。 可以是有生命的个体,比如一个人或一 只老虎。也可以是无生命的个体,比如一 辆汽车或一台计算机。也可以是一个抽象 的概念,如天气的变化或鼠标所产生的事 件。
两个特征:属性(Property)和行为(Behavior) 如:一个人的属性有:姓名、性别、年龄、身高、体重等 行为有:唱歌、打球、骑车、学习等。
3.法多,态但:其在参同数一数个量类与中数可解 不决 能据有其 重类许他 名语 的型多言 问不中题同同名,的而方 且操作过程与返回值也可能会不同。
面向对象的基本特征:封装定义
开电视 关电视 选择频道 调节声音,色彩
电视的
对象接口
内部结构
面向对象的基本特征:封装举例
入学/注册 修课/考试 查询成绩
采用的方法(加速),所需的参数(上升到更高的档位)。
面向对象的基本特征
1.和封属装于:此将数数据据的成操员作(( (12方D) )a法信模t息块a(隐化M藏Oepmerbaetirn)g Method),放在同一个实体(Entity) 或对象中。
(1)实现代码复用
2.继承:父类定义(De(f2i)n简e化)设一计过些程通用的 属性与行为,其子类继续使用。