這篇文章主要講解了“怎么使用Java內(nèi)部類、成員內(nèi)部類、靜態(tài)內(nèi)部類和方法內(nèi)部類”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么使用Java內(nèi)部類、成員內(nèi)部類、靜態(tài)內(nèi)部類和方法內(nèi)部類”吧!
湞江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
一、內(nèi)部類
(一)什么是內(nèi)部類?
可以在類中再定義類,就叫做內(nèi)部類,這個內(nèi)部類所在的類,就叫做外部類。
(二)內(nèi)部類作用
1.內(nèi)部類提供更好的封裝,把內(nèi)部類隱藏在外部類之內(nèi),不允許同一個包中的其他類訪問該類。
2.內(nèi)部類成員可以直接訪問外部類的私有數(shù)據(jù),因為內(nèi)部類被當(dāng)成外部類的成員。然而外部類不能訪問內(nèi)部類的實現(xiàn)細(xì)節(jié)(如內(nèi)部類的成員變量)。
二、成員內(nèi)部類
1.什么是成員內(nèi)部類
在一個類中可以定義成員變量、成員方法外,還可以定義類就叫做成員內(nèi)部類。成員內(nèi)部類可以訪問外部類的所有成員。
2.外部類訪問內(nèi)部類,首先創(chuàng)建外部類對象去創(chuàng)建內(nèi)部類對象,創(chuàng)建內(nèi)部類對象的語法格式
外部類名.內(nèi)部類名 變量名=new 外部類名{}.new 內(nèi)部類名{}
3.怎么定義成員內(nèi)部類案例
例如:
class A{ //定義類的成員變量 private String name="張三"; private int age=28; //定義一個成員方法,方法去訪問內(nèi)部類 public void test(){ B b=new B(); b.say(); } //定義一個成員內(nèi)部類 class B{ public void say(){ //成員內(nèi)部類方法訪問外部類的成員變量 System.out.println("你好!我叫"+name+"今年"+age+"歲!"); } } } public class p17 { public static void main(String[] args) { A a=new A();//創(chuàng)建外部類 a.test();//調(diào)用test()方法 } }
輸出的結(jié)果是:
你好!我叫張三今年28歲!
A是一個外部類,在這個類中定義了一個內(nèi)部類B和test()成員方法,在B類中有一個say()方法是成員內(nèi)部類去訪問外部類的成員變量name和age,在test()方法中創(chuàng)建內(nèi)部類B實例對象,調(diào)用say()方法。如果想外部類去訪問內(nèi)部類,首先創(chuàng)建外部類對象去創(chuàng)建內(nèi)部類對象,創(chuàng)建內(nèi)部類對象代碼如下:
A.B a=new A().new B();//創(chuàng)建內(nèi)部類 a.say();//調(diào)用test()方法
三、靜態(tài)內(nèi)部類
1.什么是靜態(tài)內(nèi)部類
內(nèi)部類如果使用static關(guān)鍵字來聲明,這個內(nèi)部類叫做靜態(tài)內(nèi)部類。它是可以在不創(chuàng)建外部類對象被實例化。
2.創(chuàng)建靜態(tài)內(nèi)部類語法格式
外部類名.內(nèi)部類名 變量名=new 外部類名.內(nèi)部類名()
3.如何使用靜態(tài)內(nèi)部案例
例如:
class A{ //定義類的成員變量 private static String name="李華"; private static int age=18; //定義靜態(tài)內(nèi)部類 static class B{ void say(){ System.out.println("你好!我叫"+name+"今年"+age+"歲!"); } } } public class p18 { public static void main(String[] args) { // TODO Auto-generated method stub A.B a=new A.B();//創(chuàng)建內(nèi)部類 a.say();//調(diào)用內(nèi)部類的方法 } }
輸出的結(jié)果是:
你好!我叫李華今年18歲!
從上面的代碼中,內(nèi)部類B使用static關(guān)鍵字來聲明,表示一個靜態(tài)內(nèi)部類。在靜態(tài)內(nèi)部類中只可以訪問外部類的靜態(tài)變量。如果訪問外部類的成員變量必須通過外部類的實例去訪問,靜態(tài)內(nèi)部不會有外部類的引用!
四、方法內(nèi)部類
1.什么是方法內(nèi)部類
內(nèi)部類定義在外部類的方法中,方法內(nèi)部類只可以在這個方法的內(nèi)部可見,也就是只可以在這個方法內(nèi)使用。
2.方法內(nèi)部類不可以在外部類方法以外去使用,方法內(nèi)部類不能使用訪問控制符和static修飾符。
3.怎么使用方法內(nèi)部類
例如:
class A{ //定義類的成員變量 private String name="李華"; private int score=88; public void test(){ //在方法中定義內(nèi)部類 class B{ void show(){ //訪問外部類的成員變量 System.out.println("姓名:"+name+" "+"英語成績:"+score+"分!"); } } B b=new B();//創(chuàng)建內(nèi)部類對象 b.show();//調(diào)用內(nèi)部類方法 } } public class p19 { public static void main(String[] args) { // TODO Auto-generated method stub A a=new A();//創(chuàng)建外部類對象 a.test();//調(diào)用test()方法 } }
輸出的結(jié)果是:
姓名:李華 英語成績:88分!
從上面代碼中,在A類的test()方法中定義了一個內(nèi)部類B,因為內(nèi)部類B是方法內(nèi)部類,程序在運行只能在方法創(chuàng)建類的實例對象然后調(diào)用show()方法,方法內(nèi)部類是可以訪問外部類的成員變量。
感謝各位的閱讀,以上就是“怎么使用Java內(nèi)部類、成員內(nèi)部類、靜態(tài)內(nèi)部類和方法內(nèi)部類”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么使用Java內(nèi)部類、成員內(nèi)部類、靜態(tài)內(nèi)部類和方法內(nèi)部類這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!