在學內部類前,我自己先問了自己2個問題!
1、什麼是內部類呢?簡單說:就是在乙個類中在建立乙個類。
2、而為什麼又要搞這個內部類呢?
我想是為了在於現實中的一些建模問題吧,讓事物更加形象。比如要建立「人體」這個類,有很多功能吧,比如「吃飯」,「看書」,而這些功能又需要「嘴巴」,「眼睛」。那麼我們就不得不建立「嘴巴」「眼睛」這2個類,那麼,在「人體」這個類中建立,則更形象,更接近事物。雖然你也能把「嘴巴」「眼睛」什麼的建立在「人體」外,但是從現實中來看,這就...我想這就是內部類的意義吧!
內部類也是類,不同的地方就在於他的訪問規則、定義的原則以及自身的一些特點。
**訪問規則
1.內部類可以直接訪問外部類中的成員,包括私有之所以可以直接訪問外部類中的成員,是因為內部類總持有了乙個外部類的引用,格式:外部類名.this
2.外部類要訪問內部類,必須建立內部物件
**訪問格式
1.當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中直接建立內部類物件,格式:外部類.內部類名變數名 = 外部類物件.內部類
outer.inner in = new outer().new inner();
2.當內部類在成員位置上,就可以被成員修飾符修飾。
比如,private:將內部類在外部類中進行封裝
¥¥$$~~特別注意:static中的內部類的一些變換
static:內部類就具備static的特性
當內部類被靜態修飾後,只能直接訪問外部類中的靜態成員了,出現了訪問侷限
在外部其他類中,訪問靜態內部類的非靜態成員
new outer.inner().function();
在外部其他類中,訪問靜態內部類的靜態成員
outer.inner.function();
¥¥$$~~ 注意:
1、當內部類中定義了靜態成員,該內部類必須是靜態成員
2、當外部類的靜態方法訪問內部類時,內部類也必須是靜態的 (雖然書上這樣說,但可以不是必須的,比如這個程式:
class outer
}public static void ****man()
}**內部類訪問特點:
1,內部類可以直接訪問外部類中的成員。
2,外部類要訪問內部類,必須建立內部類的物件。
$$¥¥~~注意:
1、內部類能直接訪問外部類中成員,是因為內部類持有了外部類的引用,即,外部類名.this。
2、內部類也可以存放在區域性位置上,但是內部類在區域性位置上只能訪問區域性中被final修飾的區域性變數。
還有一種為了更簡單的書寫內部類的一種格式:
**匿名內部類的特點
1.匿名內部類其實就是內部類的簡寫格式
2.定義內部類的前提:內部類必須是繼承乙個類或者實現介面
3.匿名內部類的格式:new 父類或者介面()
4.其實匿名內部類就是乙個匿名子類物件,而且這個物件內容較大,即帶內容的物件
5.匿名內部類中定義的方法最好不要超過三個來個例子吧:
先來有名字的,在來個匿名的~
//這是有名字的一種方法
inte***ce inter
class test} public static inter function()
class innerclasstest}
//現在是匿名的方法
inte***ce inter
public static inter function()};}}
class innerclasstest
}
物件導向 內部類
asp.net android ios開發 net培訓 期待與您交流!7.1內部類 內部類 將乙個類定義在另乙個類裡面,裡面那個類就稱為內部類.格式 class outclass 注意 內部類可以定義在外部類的成員位置,也可以是在外部類的區域性位置.如 class outclass 注意 內部類可以...
物件導向 內部類
定義 將乙個類定義在另乙個類的裡面,裡面那個類就是內部類,又稱為巢狀類或者內建類。內部類生成的位元組碼檔名格式為 outerclass innerclass.class 內部類可以分成成員內部類 區域性內部類以及匿名內部類。在乙個類中使用內部類,可以在內部類中直接訪問其所在類的私有成員變數,儘管這些...
物件導向 內部類
內部類 將乙個類定義在另乙個類的裡面,裡面那個類就成為內部類 內建類,巢狀類 內部類的定義原則 當描述事物時,事物的內部還有事物,該事物用內部類來描述。因為內部事物在使用外部事物的內容 內部訪問特點 1 內部類可以直接訪問外部類中的成員,包括私有成員。因為內部類持有乙個外部類的引用,格式為 外部類....