溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Java內部類、成員內部類、靜態(tài)內部類和方法內部類

發(fā)布時間:2021-10-21 16:39:00 來源:億速云 閱讀:162 作者:iii 欄目:編程語言

這篇文章主要講解了“怎么使用Java內部類、成員內部類、靜態(tài)內部類和方法內部類”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么使用Java內部類、成員內部類、靜態(tài)內部類和方法內部類”吧!

 一、內部類

(一)什么是內部類?

可以在類中再定義類,就叫做內部類,這個內部類所在的類,就叫做外部類。

(二)內部類作用

1.內部類提供更好的封裝,把內部類隱藏在外部類之內,不允許同一個包中的其他類訪問該類。

2.內部類成員可以直接訪問外部類的私有數(shù)據(jù),因為內部類被當成外部類的成員。然而外部類不能訪問內部類的實現(xiàn)細節(jié)(如內部類的成員變量)。

二、成員內部類

1.什么是成員內部類

在一個類中可以定義成員變量、成員方法外,還可以定義類就叫做成員內部類。成員內部類可以訪問外部類的所有成員。

2.外部類訪問內部類,首先創(chuàng)建外部類對象去創(chuàng)建內部類對象,創(chuàng)建內部類對象的語法格式

外部類名.內部類名 變量名=new 外部類名{}.new 內部類名{}

3.怎么定義成員內部類案例

例如:

class A{ //定義類的成員變量 private String name="張三"; private int age=28; //定義一個成員方法,方法去訪問內部類 public void test(){         B b=new B();         b.say(); } //定義一個成員內部類 class B{         public void say(){             //成員內部類方法訪問外部類的成員變量             System.out.println("你好!我叫"+name+"今年"+age+"歲!");         } }  } public class p17 { public static void main(String[] args) {     A a=new A();//創(chuàng)建外部類     a.test();//調用test()方法     } }

輸出的結果是:

你好!我叫張三今年28歲!

A是一個外部類,在這個類中定義了一個內部類B和test()成員方法,在B類中有一個say()方法是成員內部類去訪問外部類的成員變量name和age,在test()方法中創(chuàng)建內部類B實例對象,調用say()方法。如果想外部類去訪問內部類,首先創(chuàng)建外部類對象去創(chuàng)建內部類對象,創(chuàng)建內部類對象代碼如下:

A.B a=new A().new B();//創(chuàng)建內部類 a.say();//調用test()方法

三、靜態(tài)內部類

1.什么是靜態(tài)內部類

內部類如果使用static關鍵字來聲明,這個內部類叫做靜態(tài)內部類。它是可以在不創(chuàng)建外部類對象被實例化。

2.創(chuàng)建靜態(tài)內部類語法格式

外部類名.內部類名 變量名=new 外部類名.內部類名()

3.如何使用靜態(tài)內部案例

例如:

class A{ //定義類的成員變量 private static String name="李華"; private static int age=18; //定義靜態(tà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)建內部類     a.say();//調用內部類的方法     } }

輸出的結果是:

你好!我叫李華今年18歲!

從上面的代碼中,內部類B使用static關鍵字來聲明,表示一個靜態(tài)內部類。在靜態(tài)內部類中只可以訪問外部類的靜態(tài)變量。如果訪問外部類的成員變量必須通過外部類的實例去訪問,靜態(tài)內部不會有外部類的引用!

四、方法內部類

1.什么是方法內部類

內部類定義在外部類的方法中,方法內部類只可以在這個方法的內部可見,也就是只可以在這個方法內使用。

2.方法內部類不可以在外部類方法以外去使用,方法內部類不能使用訪問控制符和static修飾符。

3.怎么使用方法內部類

例如:

class A{ //定義類的成員變量 private String name="李華"; private int score=88; public void test(){ //在方法中定義內部類 class B{         void show(){             //訪問外部類的成員變量             System.out.println("姓名:"+name+"  "+"英語成績:"+score+"分!");         } }   B b=new B();//創(chuàng)建內部類對象   b.show();//調用內部類方法   } } public class p19 { public static void main(String[] args) { // TODO Auto-generated method stub   A a=new A();//創(chuàng)建外部類對象   a.test();//調用test()方法   } }

輸出的結果是:

姓名:李華  英語成績:88分!

從上面代碼中,在A類的test()方法中定義了一個內部類B,因為內部類B是方法內部類,程序在運行只能在方法創(chuàng)建類的實例對象然后調用show()方法,方法內部類是可以訪問外部類的成員變量。

感謝各位的閱讀,以上就是“怎么使用Java內部類、成員內部類、靜態(tài)內部類和方法內部類”的內容了,經(jīng)過本文的學習后,相信大家對怎么使用Java內部類、成員內部類、靜態(tài)內部類和方法內部類這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI