物件導向 內部類

2021-06-11 15:56:24 字數 1888 閱讀 1327

在學內部類前,我自己先問了自己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 內部類可以直接訪問外部類中的成員,包括私有成員。因為內部類持有乙個外部類的引用,格式為 外部類....