課題_Java基礎_內部類、靜態(tài)內部類、成員內部類、局部內部類、匿名內部類_第1頁
課題_Java基礎_內部類、靜態(tài)內部類、成員內部類、局部內部類、匿名內部類_第2頁
課題_Java基礎_內部類、靜態(tài)內部類、成員內部類、局部內部類、匿名內部類_第3頁
課題_Java基礎_內部類、靜態(tài)內部類、成員內部類、局部內部類、匿名內部類_第4頁
課題_Java基礎_內部類、靜態(tài)內部類、成員內部類、局部內部類、匿名內部類_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Java基礎_內部類、靜態(tài)內部類、成員內部類、局部內部類、匿名內部類內部類:使用內部類減少了命名沖突。一個內部類可以定義在一個類中,一個方法中甚至一個表達式中。內部類分為四種:靜態(tài)內部類(static inner classes)成員內部類(member inner classes)局部內部類(local inner classes)匿名內部類(anonymous inner classes)1、靜態(tài)內部類(static inner classes)最簡單的內部類。只能訪問外部類的靜態(tài)成員變量與靜態(tài)方法。生成靜態(tài)內部類對象的方法:OuterClass.InnerClass inner = ne

2、w OuterClass.InnerClass();1.1、相關使用例子:靜態(tài)內部類:classStaticInner2 private static int a = 1;34 /*5 * 靜態(tài)內部類6 * 生成的類名:StaticInner$InnerClass7 */8 public static class InnerClass9 /靜態(tài)內部類可以聲明靜態(tài)的成員變量,其他的內部類不可以10 private static int b = 1;11 public void execute()12 /靜態(tài)內部類只能訪問靜態(tài)程序13 System.out.println(a + b);14 15

3、 16 main方法中使用:1 public static void main(String args) 2 /創(chuàng)建靜態(tài)內部類3 StaticInner.InnerClass innerClass = new StaticInner.InnerClass();4 innerClass.execute();5 2、成員內部類(member inner classes):成員內部類可以訪問外部類的靜態(tài)與非靜態(tài)的方法和成員變量。生成成員內部類對象的方法:OuterClass.InnerClass inner = new OuterClass().new InnerClass();在局部內部類中訪問外

4、部類的成員變量的方法:OuterClass.this.a;2.1、相關使用例子:成員內部類:1classMemberInnerprivate int a = 1;34 public void execute()5 /在外部類中創(chuàng)建成員內部類6 InnerClass innerClass = this.new InnerClass();7 89 /*10 * 成員內部類11 */12 public class InnerClass1314 /內部類可以創(chuàng)建與外部類同名的成員變量15 private int a = 2;1617 public void execute()18 /this引用的是內

5、部類19 System.out.println(this.a);20 /在內部了中使用外部類的成員變量的方法21 System.out.println(MemberInner.this.a);22 23 24 在main方法中使用:1 public static void main(String args) 2 /創(chuàng)建成員內部類3 MemberInner.InnerClass innerClass = new MemberInner().new InnerClass(); 4 innerClass.execute();5 3、局部內部類(local inner classes):類似于局部變量

6、,不能定義為public,protected,private或者static類型。定義方法中,只能方法中聲明為final類型的變量。3.1、相關使用例子:局部內部類:1 class LocalInner3 public void execute()4 final int a = 1;5 /*6 * 創(chuàng)建局部內部類7 */8 class InnerClass9 public void execute()10 System.out.println(LocalInner Class);1112 /局部內部類只能訪問final類型的變量13 System.out.println(a);14 15 16

7、 /只能在所在方法區(qū)域創(chuàng)建17 new InnerClass().execute();18 19 在main方法中使用:1publicstatic void main(String args) 2 /外部不能直接創(chuàng)建局部內部類3 LocalInner localInner = new LocalInner();4 localInner.execute();5 4、匿名內部類(anonymous inner classes):匿名內部類沒有類名,沒有class關鍵字也沒有extends和implements等關鍵字修飾。匿名內部類會隱式地繼承一個父類或實現(xiàn)一個接口。4.1、相關使用例子:1 pu

8、blic static void main(String args) 2 AnonymousInnerClassTest test = new AnonymousInnerClassTest(); 34 /*5 * 創(chuàng)建匿名內部類6 * 生成的類名:AnonymousInnerClassTest$17 */8 test.print(new Date()9 /重寫toString()方法10 Override11 public String toString() 12 return Hello world.;13 14 );1516 JButton button = new JButton();1718 /*19 * 創(chuàng)建匿名內部類20 * 該匿名內部類實現(xiàn)ActionListener接口21 * 生成的類名:AnonymousInnerClassTest$122 */23 button.addActionListener(new ActionListener()24 /實現(xiàn)接口中的方法25 Override26 public void actionPerformed(Acti

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論