內部類講解與認識【成員內部類VS 區域性內部類】
阿新 • • 發佈:2021-01-12
技術標籤:Java 基礎知識
文章目錄:
一、 內部類的分類:
成員內部類(靜態、非靜態)
區域性內部類 (方法內、程式碼塊內、構造器內)
成員內部類的特點
一方面作為外部類的成員:
(1) 呼叫外部類的結構。
(2) 可以被static 修飾
(3) 可以被四種不同的許可權修飾符修飾。
另一方面,作為一個類
(1) 類內可以定義屬性、方法、構造器等、 (2) 可以被final 修飾,表名此類不可以被繼承,言外之意:不使用final 修飾,就可以被繼承。 (3) 可以被abstract 修飾
成員內部類VS 區域性內部類 如何定義實戰例子:
public class InnerClassTest {
}
class Person2{
// 靜態成員內部類
static class Dog{
}
// 非靜態成員內部類
class bird{
}
public void method(){
// 方法體內的:區域性內部類
class AA{
}
}
// 程式碼塊中的:區域性內部類
{
class BB{
}
}
public void Person(){
// 區域性內部類
class cc{
}
}
}
二、 如何例項化成員內部類的物件例子演示
public class InnerClassTest {
public static void main(String[] args) {
// 有了物件之後呼叫內部的結構。
// 建立Dog例項(靜態的成員內部類)
Person2.Dog person2 = new Person2.Dog();
person2.show();
person2.name=“卡卡”;
System.out.println(“狗的名字叫:”+person2.name);
// 建立bird例項(非靜態的成員內部類)
Person2 p = new Person2();
Person2.bird bird = p.new bird();
bird.sing();
}
}
class Person2{// 靜態成員內部類
static class Dog{
String name;
final int age =2;
public void show(){
System.out.println(“人吃飯需要”);
if (age >=2){
System.out.println(“這個是男神。。。。”);
}else if (age<=0){
System.out.println(“女神”);
}
}
}
// 非靜態成員內部類
class bird{
String name;
public void sing(){
System.out.println(“小鳥說:我有一雙美麗的翅膀。。。。”);
}
}
結果輸出
三、例子
// 建立了Comparable介面的類:區域性內部類
public Comparable getComparable(){
return new Comparable() {
@Override
public int compareTo(Object o) {
return 0;
}
};
}
}
-----------------------------------------要克服生活的焦慮和沮喪,得先學會做自己的主人-----------------------------------------