1/**2
* 1.內部類可以直接訪問外部類的成員,包括私有
3* 2.外部類要訪問內部類的成員必須建立物件4*
@author
jjz5*6
*/7class
outer1 13}
1415
public
void
show1()
2021}22
23public
class
outer
28 }
1/**2
* 成員內部類3*/
4class
outer1 10}
11}1213
public
class
outer
19 }
成員內部類的修飾符:
private 為了保證資料的安全性
static 為了方便訪問資料
注意:靜態內部類訪問的外部類資料必須用靜態修飾。
案例:我有乙個人(人有身體,身體內有心臟。)
1class
body 6}
78//加了private修飾之後就不能直接訪問了,所以通過method訪問
9public
void
method() 14}
15}1617
class
test
26 }
static修飾內部類:
1class
outer
1112
public
static
void
show2() 16}
17}1819
class
innerclassdemo4
36 }
1/*2面試題:
3要求請填空分別輸出30,20,10。45
注意:6
1:內部類和外部類沒有繼承關係。
72:通過外部類名限定this物件
8outer.this9*/
10class
outer 21}
22}23class
innerclasstest
28 }
區域性內部類
a:可以直接訪問外部類的成員
b:在區域性位置,可以建立內部類物件,通過物件呼叫內部類方法,來使用區域性內部類功能
面試題:
區域性內部類訪問區域性變數的注意事項?
a:區域性內部類訪問區域性變數必須用final修飾
b:為什麼呢?
區域性變數是隨著方法的呼叫而呼叫,隨著呼叫完畢而消失。
而堆記憶體的內容並不會立即消失。所以,我們加final修飾。
加入final修飾後,這個變數就成了常量。既然是常量。你消失了。
我在記憶體中儲存的是資料20,所以,我還是有資料在使用。
1class
outer 13}
1415
1617 inner i = new
inner();
18i.show();19}
20}2122
class
innerclassdemo5
27 }
匿名內部類
1/*2匿名內部類
3就是內部類的簡化寫法。45
前提:存在乙個類或者介面
6這裡的類可以是具體類也可以是抽象類。78
格式:9
new 類名或者介面名()
1213
本質是什麼呢?
14是乙個繼承了該類或者實現了該介面的子類匿名物件。
15*/
16inte***ce
inter
2021
class
outer
29}.show();
30*/
3132
//二個方法的時候
33/*
34new inter()
3839
public void show2()
42}.show();
4344
new inter()
4849
public void show2()
52}.show2();
53*/
5455
//如果我是很多個方法,就很麻煩了
56//
那麼,我們有沒有改進的方案呢?
57 inter i = new inter()
6162
public
void
show2()
65};
6667
i.show();
68i.show2();69}
70}7172
class
innerclassdemo6
77 }
1inte***ce
person145
//class student implements person1
11//
12//}13
14class
persondemo18}
1920
public
class
outer
3334
});35
}36 }
1/*2匿名內部類面試題:
3按照要求,補齊**
4inte***ce inter
5class outer
6class outerdemo 10}
11要求在控制台輸出」helloworld」
12*/
13inte***ce
inter
1718
class
outer
26};27}
28}2930
class
outerdemo
39 }
內部類訪問特點
內部類的class位元組碼檔案名字格式為outer inner.class。內部類訪問特點 1,內部類可以直接訪問外部類中的成員。2,外部類要訪問內部類,必須建立內部類的物件。一般用於類的設計。分析事物時,發現該事物描述中還有事物,而且這個事物還在訪問被描述事物的內容。這時就是還有的事物定義成內部類...
內部類的訪問特點
今天刷題的時候遇到了一題關於內部類的訪問的問題,發現自己忘了許多,現在來複習一下。首先,內部類的類位元組碼檔案名字為outer inner.class。記住一下訪問原則 1.內部類相當於外部類的乙個成員變數,因此內部類可以直接訪問外部類的成員。但是注意內部類靜態方法不能訪問外部類非靜態成員 2.但是...
內部類概述
就是在乙個類中定義另外乙個類 在a類中定義乙個b類,那麼將b類就稱為a類的內部類,a類就是b類的外部類 內部類是可以訪問外部類的成員,包括私有 外部類成員要想訪問內部類成員必須通過建立內部類物件來訪問。內部類的分類 1 成員內部類 在外部類的成員位置定義的類 2 區域性內部類 在區域性位置 外部類的...