內部類:在乙個類的內部定義另外乙個類,另外乙個類稱為內部類
內部類的class檔名:外部類$內部類.class
內部類的型別:成員內部類:在外部類的成員位置
區域性內部類:在外部類的區域性位置
內部類的好處:可以直接訪問外部類的所有成員
應用場景:在描述a事物時,a事物內部還維護了另外乙個b事物,且b事物必須要訪問到a事物的成員,這時可以用內部類來描述b事物
訪問方式:
方式一:在外部類提供乙個方法建立內部類的物件進行訪問
方式二:在其他類中直接建立內部類的物件進行訪問
outer.inner inner=new outer().new inner();
格式:外部類.內部類 變數名=new 外部類().new 內部類();
舉例:
注意://測試類
public
class demo1
}//外部類
class outer
}//外部類提供乙個方法建立內部類的物件進行訪問
public
void
usemethod()
}
1.內部類可以訪問外部類的所有成員(包括私有)
2.內部類與外部類存在同名成員時,在內部類中預設是訪問內部類的成員,可以通過「外部類.this.成員」進行指定訪問外部類的成員
3.私有的成員內部類只能通過在外部提供乙個公共的方法進行訪問,在其他類無法訪問(private只是為了資料安全)
4.如果乙個成員內部類定義了靜態的成員,則該類也必須使用static修飾,靜態成員內部類只能訪問外部類的static成員變數
因為:靜態成員變數是不依賴物件而存在的
靜態成員內部類在其他類建立物件的格式:
外部類.內部類 變數名=new 外部類.內部類();
舉例:
如果區域性內部類要訪問區域性變數,則區域性變數必須用final修飾(jdk1.8不會報錯——封裝好了)//測試類
public
class demo2
}//外部類
class outer2
}//成員內部類定義了靜態的成員,該類也必須用static修飾
static class inner2
}//私有的成員內部類只能用外部類的方法進行訪問
public
void
method()
}
舉例:
沒有類名的內部類//測試類
public
class demo3
}//外部類
class outer3
}//區域性內部類可以在外部類的區域性方法內,區域性內部類外建立內部類的物件訪問內部類的方法
inner i=new inner();
i.getparm();
}}
使用前提:必須存在繼承或者實現關係
舉例:
//測試類
public
class demo4
}//抽象類
abstract class animal
//介面
inte***ce hibernation
class outer4
}.eat();//貓吃魚
//當介面中有多個方法時,運用多型可以呼叫多個方法
hibernation h=new hibernation()
public
void
sleep()
};h.hibernation();//有些動物會冬眠
h.sleep();//有些動物會進行深層睡眠
}}
JavaSE學習筆記 內部類
一,什麼是內部類?將類定義在類中,該類就是類部類.二,訪問許可權.內部類可以直接訪問外部類中的成員。外部類想要訪問內部類,需要建立內部類物件。三,什麼時候使用內部類。有a類和b類,當a類想要直接訪問b類中的成員,而b類又需要建立a類的物件來訪問a類中的成員。這時,就將a類定義成b類的內部類。例子 孫...
JavaSE基礎學筆記 內部類
內部類的應用場景 當描述事物時,事物的內部還有事物,並且這個內部事物要使用外部事物的某些特性,這時把內部事物定義成內部類。內部類與其外部類的訪問規則 1.內部類可以直接訪問外部類的成員。2.外部類要訪問內部類要建立內部類物件。3.內部類可以被private修飾,因為內部類是在其外部類的成員位置上。注...
JavaSE基礎08內部類
在乙個類中定義乙個類,那麼把這種情況稱為內部類。內部類可以訪問外部類的成員,即使外部類用private修飾 私有 外部類想要訪問內部類成員,必須同通過建立內部類物件來訪問內部類的成員。package org.zst.inter class outer1 public void show public...