第八章
面向对象的 Java程序
学习目标,
?定义封装及其优点
?掌握 public和 private的使用
?编写封装私有成员的代码
?掌握构造器的用途和编写
封装
? 操作 和 属性 总称为对象的 成员
? 对象 成员 可以 public(公有的)或 private(私有
的)。
? 大多数或全部变量都为私有。
? 变量通过它们自己类的方法修改。
? 其他类都只与另一个类中很少的几部分接口。
? 不影响接口的情况下可更改实现。
? 如果一个变量或方法定义为 公有的,则它是接口的一部分,而且其他类可以访
问它;
? 如果一个变量或方法定义为 私有的,则它是实现的一部分,只能类自己的成员
访问它,而其他类不能访问它;
实现封装
? 在类成员前设置 public或 private
private int myInt;
public String name;
public void getName()
{
return name;
}
? 通过声明类的访问控制符可以使整个程序
结构清晰、严谨,减少可能产生类间干扰
和错误。
get 和 set 方法
? 当变量是 私有的 时,必须通过成员方法访问。
? get和 set方法取值和存值
查看结果,AccessTest.java
main 方法设置
? 对于要运行的任何程序,所运行文件中的
类必须包含一个 main方法
? 如果没有此方法,将出现如下消息,
In class class:void main(String args[]) is not defined
? 如果从另一个使用了 main方法的类中调用
该类的组成部分,程序将能正确运行
变量的作用域
? 并不是所有的变量在整个程序中都能使用
? 变量作用域指变量可在程序中使用的位置
name的作用域
age的作用域
查看结果,VariableLifeTime.java
构造器 (构造函数 )
? 构造器允许创建对象时指定对象的值
? 多数课程中使用缺省构造器
? 构造器的名称与所属类的名称相同
查看结果,BoxDemo6.java
构造函数的作用是 构造并初始化对象 。
构造函数的特点有,
( 1) 构造函数和类具有相同的名字
( 2) 一个类可以有多个构造函数
( 3) 构造函数可以有 0个, 1个或多个参数
( 4) 构造函数没有返回值和返回类型
( 5) 构造函数总是和 new运算符一起被调用,在创建一
个类的新对象的同时, 系统会自动调用该类的构造函数
为新对象初始化 。
注意:在构造方法里不用 return语句返回一个值。
如何才能使用构造器
? 缺省构造器
? 显式创建的构造器
缺省构造器
? 若某类没有构造器,编译器将插入一个缺省的构造器。
? 当用 new修饰符来实例化对象时,new将自动调用缺省构造器。
Shirt shirt1= new Shirt() ;
? 编译器将插入一个缺省构造器,如下所示,
构造器的作用
? 所有的初始化代码处在一个地方,这样使得代码
更容易维护和阅读。
? 缺省值可以清除地知道。
? 非常灵活
? 可设置值,传递参数等
? 示例:如果不指定姓名,可使用构造器创建名为
New Customer的 Customer对象
查看结果,Test2.java
声明和使用构造器
查看结果,SimpleConstructor.java
声明和使用构造器
重载构造器
查看结果,Person1.java
星期五上机
? 实验 6-1,6-2,6-3