天天看點

java内部類的建立方式

      内部類我們在程式開發中經常會用到,這裡通過普通内部類,靜态内部類和方法内部類三種方式來介紹一下内部類的建立方式。

     1.普通内部類的建立:

/**
 * 
* 普通内部類的定義
*
 */
class Outer {
    private String name = "hello world !";
    //普通内部類定義
    class Inner{
      public void print(){
          System.out.println(name);
      }
    }
}
public class TestDemo {
    public static void main(String[] args) {
     Outer out = new Outer();
     out.new Inner().print();
    }
}
           

     通過上面的代碼可以看出來,普通的内部類不必要通過外部類 顯示定義私有屬性的get和set方法就可以通路 外部類的私有屬性。

    2.靜态内部類

/**
 * 
* 靜态内部類的定義
*
 */
class Outer{
    private static String name = "hello world !";
     static class Inner{
         public static void print(){
          System.out.println(name);   
         }
        
    }
}
public class TestDemo {
    public static void main(String[] args) {
     Outer.Inner.print();
    }
}
           

    通過觀察上面的代碼,靜态内部類隻能通路外部類的靜态屬性,靜态内部類也不用 通過外部類 顯示定義靜态 私有屬性的get和set方法就可以通路 外部類的私有屬性。

  3.方法内部類

/**
 * 
* 方法内部類的定義
*
 */
class Outer {
    private String name = "hello world !" ;
    public void fun(final int num){
        final String param = "我是方法參數";
       class Inner {
           public void  print(){
               System.out.println("方法傳入參數:"+num);
               System.out.println("外部類參數:"+Outer.this.name);
               System.out.println("方法内部參數:"+param);
           }  
       }
       new Inner().print();
        
    }   
}

public class TestDemo {
    public static void main(String[] args) {
     new Outer().fun(100);
    }
}
           

 方法内部類要想通路方法傳入的參數和方法内部的參數,參數類型前面必須要添加final關鍵字來修飾。