|
JAVA程序员必读:基础篇(5)---类和继承
|
|
编译:ZSC/太平洋网络学院
|
|
|
5.1.6 控制对类成员的访问
- Private
当一个类试图访问一个它不能访问的成员变量的时候,编译器就会打印出错误信息(如下)病拒绝继续编译程序:
Beta.java:9: Variable iamprivate in class Alpha
not
accessible from class Beta. //在Alpha类中的imaprivate变量不能从Beta类中进行访问
a.iamprivate = 10; // 非法
^
1 error //一个错误
同时,如果你的程序试图访问一个不能访问的方法,就将导致如下的编译器错误:
Beta.java:12: No method matching privateMethod()
found in class Alpha. //在Alapha类中没有匹配的方法privateMethod()
a.privateMethod(); // 非法
1 error //一个错误
JAVA的新手可能会问是否一个Alpha对象可以访问另外一个Alpha对象的private成员。下面给出具体例子来进行解释。假如Alpha类包含了一个实例方法,它比较当前的Alpha对象(this)以及另外一个对象的iamprivate变量:
class Alpha {
private int iamprivate;
boolean isEqualTo(Alpha anotherAlpha) {
if (this.iamprivate == anotherAlpha.iamprivate)
return true;
else
return false;
}
}
结果是相当的合法。所以,相同类型的对象可以访问其它的private成员。这是因为访问限制只是在类别层次(类的所有实例)而不是在对象层次(类的特定实例)上。
[上一页] [下一页]
|