今天在Android的開發環境中做了一個測試, 類A中加了一個內部類B, B類中有private, protected, public等屬性和方法,結果在類A中的public 方法中訪問類B中的所有成員都沒報錯,很是詫異。
按照我的理解,起碼類B中的所有private成員不能被類A訪問,結果類A不僅訪問了,而且沒報任何錯誤。
後來想了一下,java中每個.java文件中只能有一個類,而且類的名字需同文件名字相同,而private,protected關鍵字應該只是在不同文件、不同包間起保護作用,而在在同一文件的同一類中是沒有限制的, 因爲B類在A.java 的A類中,所以B中的所有成員對A類來講都是透明可見的,無論其屬性是public, 還是protected,private。
public class A{
public void methodA(){
B class_b = new B();
class_b.b1 = 0;
class_b.b2 = 0;
class_b.methodB1();
class_b.methodB2();
//以上編譯、調用全部通過且無錯
}private class B {
private int b1;
protected int b2;
public int b3;
private void methodB1()
{
}
protected void methodB2()
{
}
public void B3()
{
}
}