面向对象程序设计知识点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 ,父类更通用、子类更具体

巴士是汽车吗? 卡车是汽车吗? 出租车是汽车吗?

最大载客数量

报站

引擎数量

外观颜色 刹车

汽车

最大载重量

卸货

属性

行为 请问:出租车包含哪些属性和行为呢?

所属公司 最大载客数量

打发票

相关文档
最新文档