一、內部類
內部類就是將一個類A定義在類B里邊,里邊的那個類A稱為內部類,外邊的類B稱為外部類
成員內部類定義格式:class 外部類{
class 內部類{
}
}
class A{
class B{
}
}
在描述一個事物是,事物的里邊還有另外一個事物就可以用到內部類
訪問特點:
1、內部類可以直接訪問外部類的成員,包括私有成員,
2、外部類要訪問內部類的成員,必須要建立內部類的物件,
創建內部類格式:
外部類.內部類 物件名=new 外部型別().new 內部型別();
public class Test15 {
public static void main(String[] args) {
//創建內部類的物件
shangjin.haishoujisi h=new shangjin().new haishoujisi();
h.eluoyi();
}
}
class shangjin{
public void chuanzhang(){
System.out.println("這里是外部類方法");
}
class haishoujisi{
public void eluoyi(){
System.out.println("這里是內部類方法");
}
}
}
二、匿名內部類
是內部類的簡化寫法,它的本質是一個 帶具體實作的 父類或者父介面的 匿名的 子類 物件,
匿名內部類:
格式:
外部類.內部類 物件名=new 外部類().內部類(){方法重寫};
public class Test13 {
public static void main(String[] args) {
chide.kfc k = new chide().new kfc();//外部類物件訪問內部類物件 屬于內部類物件 創建格式(外部類.內部類 物件名=new 外部類().new內部類();)
k.jitu();
chide c = new chide();//普通外部類物件
c.maintiao();
System.out.println(c.money + "元 真不貴");
new chide().maintiao();//匿名物件 只能是用一次 格式 new 外部類().方法名();
chide.kfc kc = new chide().new kfc() {//匿名類 格式 外部類.內部類 物件名=new 外部類().內部類(){方法重寫};
public void jitu() {
System.out.println("老八秘制小漢堡");
}
};//由于這個是賦值陳述句要在最后大括號外+上分號
kc.jitu();
}
}
class chide {//外部類
int money = 100;
public void maintiao() {
System.out.println("面條-----外部類的方法");
}
class kfc {//內部類
public void jitu() {
System.out.println("雞腿-----內部類的方法");
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/375870.html
標籤:java
上一篇:通過AOP實作全域日志列印
