黑馬程式設計師 java中內部類知識點總結

2021-06-19 15:31:19 字數 1934 閱讀 2275

---------------------- asp.net+android+ios開發、.net培訓、期待與您交流! ----------------------

內部類:將乙個類定義在另乙個類裡面。內部類可以直接訪問外部類中的成員,包括私有成員。

格式 outer.inner in=new outer().new inner();

成員內部類:就是作為外部類的成員,可以直接使用外部類的所有成員和方法,即使是private的。同時外部類要訪問內部類的所有成員變數/方法,則需要通過內部類的物件來獲取。外部類訪問內部類成員必須先建立內部類物件。外面的其他類要訪問內部類時,需要例項化,格式 outer.inner in=new outer().new inner();

這裡需要內部類不是private。之所以可以可以直接訪問外部類中的成員,是因為內部類中持有並隱藏了乙個外部類的引用,格式 外部類名.this.成員 。如

class outer

}}

輸出結果為321

注意:內部類是乙個編譯時的概念,一旦編譯成功,就會成為完全不同的兩類。對於乙個名為outer的外部類和其內部定義的名為inner的內部類。編譯完成後出現outer.class和outer$inner.class兩類。

所以內部類的成員變數/方法名可以和外部類的相同。

當內部類被static修飾後,它只能訪問外部類的靜態成員。

注意:當內部類中有靜態成員,該內部類必須是static的。當外部類中的靜態方法訪問內部類時,內部類也必須是static的。

區域性內部類:是指內部類定義在方法和作用域內。

內部類定義在區域性時,1不可以被成員修飾符修飾。

2可以直接訪問外部類中的成員,因為還持有外部類的引用。但是不可以訪問它所在區域性中的變數。只能訪問被final修飾的區域性變數。

public class parcel4  

public string readlabel()

} return new pdestination(s);

} public static void main(string args)

}

public class parcel5  

string getslip()

} trackingslip ts = new trackingslip("slip");

string s = ts.getslip();

} }

public void track()

public static void main(string args)

}

區域性內部類也像別的類一樣進行編譯,但只是作用域不同而已,只在該方法或條件的作用域內才能使用,退出這些作用域後無法引用的。

匿名內部類:

1匿名內部類其實就是內部類的簡寫格式。

2定義匿名內部類的前提:內部類必須是繼承乙個外面的類或者介面,甚至可以繼承自己所在的類。

如:

class inter2

static inter2 in2=new inter2()

void method2(){}

};}

abstract class inter3

};}

3匿名內部類的格式: new 父類或者介面().方法();實在沒有父類了,就new乙個object作為此類的父類。

4其實匿名內部類就是乙個匿名子類物件。而且這個物件有點胖。可以理解為帶內容的物件。

5匿名內部類中定義的方法最好不要超過3個。

在實際開發時候,會大量用到匿名內部類,因為它簡單方便。

---------------------- asp.net+android+ios開發、.net培訓、期待與您交流! ----------------------

黑馬程式設計師 內部類

windows phone 7手機開發 net培訓 期待與您交流!什麼是內部類呢?將乙個類定義在另乙個類的裡面,對裡面那個類就稱為內部類 內建類 巢狀類 內部類的訪問特點有哪些呢?內部類可以直接訪問外部類中的成員,包括私有成員 而外部類要訪問內部類中的成員必須要建立內部類的物件。內部類有什麼作用呢?...

黑馬程式設計師 內部類

asp.net android io開發s net培訓 期待與您交流!內部類即在乙個外部類的內部再定義乙個類。內部類作為外部類的乙個成員,且依附於外部類而存在。內部類的訪問規則 1 內部類可以直接訪問外部類中的成員,包括私有。2 外部類需要訪問內部類時,必須建立內部類物件。訪問格式 外部類名.內部類...

黑馬程式設計師 內部類

asp.net android ios rel noopener noreferrer target blank asp.net android ios開發 net rel noopener noreferrer target blank net培訓 期待與您交流!內部類 將乙個類定義在另乙個類的裡...