面向对象程序设计知识点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计
万物皆对象
冯君,李永,李群,薛红芳编
1
面向对象的特性-封装性
学习目标:
1.理解封装的概念
2.掌握private 关键字
3.掌握构造方法
4.掌握方法重载 重点与难点:封装性的理解,构造方法的使用,方法重载的定义
✍
理解为什么需要封装
封装的定义
1.封装,就是隐藏实现细节
2.将属性私有化,提供公有
方法访问私有属性
3.通过这些公有方法访问私
有属性,这样做的好处是
防止外界直接对属性进行
不合理的更改。
✪
理解为什么需要构造方法
构造方法的定义:
构造方法负责对象成员的初始化
工作,为实例变量赋予合适的初
始值。
构造方法必须满足以下语法规则:
1、方法名与类名相同
2、没有返回类型
构造方法的调用:创建对象时自动
调用。这好比是人刚出生父母就给
他起好了名字。
带参构造方法:通过调用带参数的
构造方法,简化对象初始化的代码。
特殊的this:this 表示当前对象,
为了区分成员变量和参数,如果
不同名,可以不加this 。
✍
方法重载的定义:
1.方法名相同。
2.方法的参数类型、个数、顺序
至少有一项不相同。
3.方法的返回类型可以不相同。
4.方法的修饰符可以不相同。
思考:构造方法可以重载吗?(可以)
public class Teacher{
private String name; // 姓名
// 返回姓名
public String getName() {
return name;
}
// 设定姓名
public void setName(String name) {
= name;
}
}
public class Teacher {
private String name; //姓名
// 构造方法
public Teacher() {
name = "张三";
}
}
//存在问题,每个教师在new 出
来时的名字都一样,最简单的解
决办法——带参构造方法
public Teacher(String name)
{
=name;
}
Math.max(1,2);
Math.max(1.0F,2.0F);
Math.max(1.0,2);
运行时,Java 虚拟机先判断给定参
数的类型,然后决定到底执行哪个
max()方法
☺使用private关键字修饰某个成员变量后,这个成员变量可以被同一包中的其它类访问吗?
☺在Java程序中,代码封装带给我们的好处是什么?
☺请通过代码封装,实现如下需求:
编写一个类Book,代表教材:
具有属性:名称(title)、页数(pageNum),其中页数不能少于200页,
否则输出错误信息,并赋予默认值200
为各属性设置赋值和取值方法
具有方法:detail,用来在控制台输出每本教材的名称和页数
编写测试类BookTest进行测试:为Book对象的属性赋予初始值,并调用
Book对象的detail方法,看看输出是否正确
☺编写一个类Book2,代表教材:
具有属性:名称(title)、页数(pageNum),其中页数不能少于200页,
否则输出错误信息,并赋予默认值200
具有方法:Sdetail,用来在控制台输出每本教材的名称和页数
具有带参数的构造方法:用来完成对象的初始化工作,并在构造方法中完成
对页数的最小值限制
编写测试类Book2Test进行测试:初始化一个Book2对象,并调用该Book2
对象的detail方法,看看输出是否正确
☺编写一个类Book3,代表教材:
具有属性:名称(title)、页数(pageNum)、类型(type)
具有方法:detail,用来在控制台输出每本教材的名称、页数、类型
具有两个带参构造方法:第一个构造方法中,设置教材类型为“计算机”
(固定),其余属性的值由参数给定;第二个构造方法中,所有属性的值都
由参数给定
编写测试类Book3Test进行测试:
分别以两种方式完成对两个Book3对象的初始化工作,并分别调用它们的
detail方法,看看输出是否正确
改进上学期所编写的宠物猫程序:运用封装、构造方法及构造方法的重载编写一个宠物猫类,能吃,能喝,能睡,能运动,能捉老鼠。
编写一个测试类,对宠物猫类进行测试。
2
继承性和多态性
学习目标:
1.理解Java 程序设计语言中继承含义
2.能够灵活运用Java 继承机制编程
3.理解Java 程序设计语言中多态性含义
4.能够灵活运用Java 多态性编程
一、继承: 1 引入: 举例1
举例2
注:子类具有父类的一般特性(包括属性和行为),以及自身特殊的特性。
生活中的继承
• 生活中,继承的例子随处可见
动物
食草动物
食肉动物
谁是父类?谁是子类?能说出继承的特点吗?
继承需要符合的关系:is-a ,父类更通用、子类更具体
巴士是汽车吗? 卡车是汽车吗? 出租车是汽车吗?
最大载客数量
报站
引擎数量
外观颜色 刹车
汽车
最大载重量
卸货
属性
行为 请问:出租车包含哪些属性和行为呢?
所属公司 最大载客数量
打发票