第8章-面向对象编程.pdf
文本预览下载声明
132
第 8 章 面向对象编程
第 8 章 面向对象编程
Java 作为一门完全的面向对象语言有它本身的特性,在前面的讲解中,重点主要放在了
知识点的讲解上,一些代码的编写并不符合 Java 的规范。在这一章中主要对 Java 的一些编
程规范以及技巧进行简单的讲解。
8.1 封装性
作为一门完全的面向对象语言,封装是 Java 的三大特征之一。面向对象语言的优点之一
就是可以写一个类给别人使用,但是在类中并不是所有的信息都能让用户可见的,因此隐藏
这些信息就显得很有必要,这就是面向对象对封装的要求。Java 的封装是通过 private 、
protected 和 public 来实现的。
8.1.1 成员变量的封装
在前面的程序中,成员变量都为 public 或是默认修饰符的。实际上这是违反面向对象思
想的,在面向对象编程中有一原则,即尽量让数据私有。
也许读者会有疑问如果数据私有的话,怎么访问这些成员变量呢?答案是通过方法来访
问。下面是一个简单的实例,用标准的形式实现前面的Human 类,代码如下。
class Human
{
//成员属性都是私有的
private String name;
private String sex;
private int age;
private String addr;
//public 的设置和访问方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//省略其他变量的 get 和 set 方法
public void work() {
System.out.println(我在工作);
}
public void eat() {
133
Java 从入门到精通
System.out.println(我在吃饭);
}
}
在程序中类 Human 的 4 个属性 name 、age、sex、addr 都被声明为 private ,对每个属性
都提供了一个 set 方法和一个 get 方法用来设置和获取相应属性的值,并且都声明为 public 。
显然其他的类直接访问这些属性是不行的,而应该使用类提供的方法来取值和赋值。示例如
下。
public class HumanDemo {
public static void main(String[ ] args) {
Human zhangsan=new Human();
//zhangsan.name=张三; 这个语句是错误的
//设置成员变量的值
zhangsan.setName(张三);
zhangsan.setAge(25);
zhangsan.setS
显示全部