内部類
在類的内部在定義一個類
- 成員内部類
- 靜态内部類
- 局部内部類
- 匿名内部類
建立内部類的對象:
public static void main(String[] args) {
//先建立外部類對象
outer outer = new outer();
//通過外部類對象new内部類對象
outer.Inner inner = outer.new Inner();
inner.in();
}
public class outer {
private int id=999;
public void out(){
System.out.println("這是外部類的方法");
}
//重點:内部類可以調用外部類的屬性和方法,但這和繼承不一樣哦,繼承是直接将屬性方法給了子類,而這裡需要調用得到
public class Inner{
public void in(){
System.out.println("這是内部類的方法");
System.out.println(id);//輸出外部類的屬性
out();//直接調用外部類的方法
}
}
}
- 一個Java檔案隻能有一個public class,但可以有多個class檔案
這個A類也叫内部類:
public class outer {
}
class A{
}
public class outer {
public void A(){
class B{
}
}
}
public class outer {
public static void main(String[] args) {
//沒有名字,沒有将執行個體儲存到變量中
new Apple().eat();
//用匿名内部類實作了接口
new UserService(){
@Override
public void a() {
}
};
}
}
class Apple{
public void eat(){
System.out.println("吃");
}
}
interface UserService{
void a();
}