如下类:
class A
{
private int i = 0; public boolean equals(A a)
{
return (this.i == a.i); // <-- 这里为什么可以访问私有变量?
}
}我只知道可以, 但没有追究过原因. 请明白之人正解!
class A
{
private int i = 0; public boolean equals(A a)
{
return (this.i == a.i); // <-- 这里为什么可以访问私有变量?
}
}我只知道可以, 但没有追究过原因. 请明白之人正解!
但java规定了,同一个类的所有实例,互相之间有完全访问权。就当它是个规定,记住就没错了。
实际上,把重要的数据修饰为private,然后写一个public的函数访问它,正好体现了OOP的封装特性,是OOP安全性的体现。
private int i = 0; public boolean equalsA(A a)
{
return (this.i == a.i);
}
public boolean equalsB()
{
B b=new B();
return (this.i == b.v);
}
public boolean equalsC()
{
C c=new C();
return (this.i == c.r);
}
class B{
private int v=0;
}
}
我試著用了一下,發現類中的子類的私有變量也可以直接訪問(如equalsB方法)
C類是另外一個JAVA檔,其中的私有變量r就不可訪問
PS:未查資料,如有不對的地方請不吝指正