java中的內部類

來源:互聯網
上載者:User

標籤:java中的內部類

內部類的作用是:可以訪問外部類中的私人資料

成員內部類:

  1. 成員內部類可以等同的看做是成員變數。

  2. 成員內部類不能有靜態聲明。

  3. 成員內部類可以訪問外部類的所有的資料。

public class OuterClass{//靜態變數private static String s1 = "A";//成員變數private String s2 = "B";//靜態方法private static void m1(){System.out.println("static‘s m1 method execute!");}//成員方法private void m2(){System.out.println("m2 method execute!");}//成員內部類//可以用存取控制許可權的修飾符修飾。//public,protected,private,預設class InnerClass{//靜態方法//public static void m3(){}//成員方法public void m4(){System.out.println(s1);m1();System.out.println(s2);m2();}}//入口public static void main(String[] args){//建立外部類對象OuterClass oc = new OuterClass();InnerClass inner = oc.new InnerClass();//注意成員內部類的訪問方式inner.m4();}}靜態內部類:可以看做是靜態變數 ,可以訪問外部類的待用資料,無法直接存取成員。public class OuterClass{//靜態變數private static String s1 = "A";//成員變數private String s2 = "B";//靜態方法private static void m1(){System.out.println("static‘s m1 method execute!");}//成員方法private void m2(){System.out.println("m2 method execute!");}//靜態內部類//可以用存取控制許可權的修飾符修飾。//public,protected,private,預設static class InnerClass{//靜態方法public static void m3(){System.out.println(s1);m1();//System.out.println(s2);//m2();}//成員方法public void m4(){System.out.println(s1);m1();//System.out.println(s2);//m2();//不能訪問外部類的成員方法和成員變數。}}//入口public static void main(String[] args){//執行m3OuterClass.InnerClass.m3();//執行m4InnerClass inner = new OuterClass.InnerClass();//建立靜態內部類的對象inner.m4();}}局部內部類:  局部內部類相當於局部變數,局部內部類在訪問局部變數的時候必須用final修飾;  (jdk1.8中的新特性好像是取消了)。  public class OuterClass{//方法public void m1(){//局部變數final int i = 10;//為什麼用final修飾?//局部內部類//局部內部類不能用存取控制許可權修飾符修飾。class InnerClass{//內部類不能有靜態聲明//public static void m1(){}//成員方法public void m2(){System.out.println(i); // 10}}//調用m2InnerClass inner = new InnerClass();inner.m2();//怎麼樣使用m2方法。}//入口public static void main(String[] args){OuterClass oc = new OuterClass();oc.m1();}匿名內部類:/*匿名內部類:指的是類沒有名字.*/public class Test{//靜態方法public static void t(CustomerService cs){cs.logout();}//入口public static void main(String[] args){//調用t方法//t(new CustomerServiceImpl());//使用匿名內部類的方式執行t方法//整個這個"new CustomerService(){}"就是個匿名內部類t(new CustomerService(){public void logout(){System.out.println("exit!");}});//匿名內部類的優點:少定義一個類.//缺點:無法重複使用!}}//介面interface CustomerService{//退出系統void logout();}//編寫一個類實現CustomerService介面/*class CustomerServiceImpl implements CustomerService{public void logout(){System.out.println("系統已經安全退出!");}}*/

本文出自 “gaogaozi” 部落格,請務必保留此出處http://hangtiangazi.blog.51cto.com/8584103/1661202

java中的內部類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.