作者adrianshum (Alien)
看板java
标题Re: [问题]有关private属性
时间Mon Jul 23 19:19:52 2007
※ 引述《[email protected] (小白退散!)》之铭言:
: 这个写法是合法的, 无论是 C++ / C# / JAVA 都是合法的.
: 所谓的可见度, 是针对 class level 而言, 而非 object/instance level 而言.
: 对 class A 来讲, 他所有的 private member data 都可以被另一个 class A 的
: Instance 存取.
: 也就是说, scope 的修饰词只对不同的 class level 有意义.
: 原因很简单, Complier 无法预测 runtime 的行为, 而 object / instance 是属於
: runtime 时期的产物.
object/instance 是 runtime 的产物也不代表
compiler 不能对其作出检查吧?.
另, 说 accessibility 是 class level, Java 中有一个例外.
Java 中的 protected keyword 是针对个别 instance 的.
child class 的 instance 只能存取本身 instance 的 parent
class protected member,
e.g.
class Parent {
protected int parentInt;
}
class Child {
void foo() {
this.parentInt = 10; //valid
}
void bar(Child anotherChild) {
anotherChild.parentInt = 5; //ERROR
}
}
Alien
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.22.246.26