內部類
將乙個類定義在另乙個類的裡面,對立面那個類就成為內部類(內建類,巢狀類)
定義:當描述事物時,事物的內部還有事物,該事物用內部類來描述。
因為內部事務在使用外部事物的內容。
舉例子心臟
內部類的訪問規則
1內部類可以直接訪問外部類中的成員,包括私有。
之所以可以直接訪問外部類的成員 ,因為內部類中持有乙個外部類的引用。
格式: 外部類名.this。
2外部類要訪問內部類,必須建立內部類物件。
class outer }
void method() }
class test
}
內部類訪問外部類 格式:外部類名.this
class outer
}
內部類在成員位置上
1內部類定義 在 外部類 成員位置上,且非私有,
外部其他類中,
可以直接建立內部類物件
外部類名.內部類名 變數名=外部類物件.內部類物件
outer是外部類,inner是非靜態內部類。
outer.inner in = new outer().new inner();
2內部類在成員位置,可以被成員修飾符修飾
private: 將內部類在外部類中進行封裝;
static : 內部類就具備了static的特性。
static class inner{}
當內部類被static修飾後,只能直接訪問外部類中的被static修飾的成員。
在外部其他類中,直接訪問靜態內部類的非靜態成員。
outer是外部類,inner是靜態內部類 。
outer.inner in = new outer.inner.function();
3 當內部類中成員定義了static,該類也必須被static修飾。
4當外部類中的static成員訪問內部類中的成員時,內部類必須也是static。
class outer }}
class test
}
在外部其他類中,直接訪問靜態內部類的靜態成員。
class outer }}
class test
}
當描述事物時,事物的內部還有事物,該事物用內部類來描述。
因為內部事務在使用外部事物的內容。
class body
public void show()}
內部類定義在區域性時
1.不可以被成員修飾符修飾。 static public private
2.可以直接訪問外部類成員,因為還持有外部類中的引用。
**但是不可以直接訪問所在的區域性中的變數,只能訪問被final修飾的區域性變數。
內部類的呼叫
不可以被成員修飾符修飾。 static public private
class outer
}new inner().function(); //只有先載入完inner,才能new物件 }}
class test
}
不可以訪問它所在的區域性中的變數,只能訪問被final修飾的區域性變數。
class outer}new inner().function(); }}
class test
}
匿名內部類
1.匿名內部類是內部類的簡寫格式。
2.定義匿名內部類的前提:
內部類必須是繼承乙個類或者實現介面。
3.匿名內部類的格式:
new 父類或者介面()
4.其實匿名內部類就是乙個匿名子類物件。
這個物件有點胖。可以理解為帶內容的物件。
5匿名內部類中定義的方法最好不要超過3個。
abstract class absdemo
class outer
} public void function() }
class test
}
匿名子類物件的建立如下
abstract class absdemo
class outer
}.show(); //呼叫匿名內部類 }}
class test
}
匿名內部類命名
abstract class absdemo
class outer
void abs()
}d.show(); //可以呼叫,父類有abs();
//呼叫失敗。父類沒有abs();
}}
聯絡inte***ce inter
class test }
static inter function() }
class innerclasstest
}//-----------匿名內部類 後如下----------------
inte***ce inter
class test
} }}class innerclasstest
}
內部類,匿名內部類
內部類 概念 自己想到的 內部類是一種可以直接訪問外部類的一類事物 內部類訪問外部類中的成員,包括私有。之所以可以訪問外部類的成員,是因為內部類持有了外部類的乙個引用,格式為 outer.this.x 外部類訪問內部類成員,需要宣告內部類的物件。其他類訪問內部類方法 當內部類處在成員變數的位置時,就...
內部類 匿名內部類
把類定義在其他類的內部,這個類就叫內部類。內部類分為 成員內部類 區域性內部類。內部類訪問特點 內部類可以直接訪問外部類的成員,包括私有。外部類訪問內部類的成員,必須建立物件。區域性內部類是定義在乙個方法或者乙個作用域裡面的類。public class outer 在區域性位置建立內部類物件,調內部...
內部類 匿名內部類
package org.lgy.study.innerclass public class anonymoustest public static void main string args public string getname public double getprice inte ce p...