1. 程式人生 > 其它 >java 幾種內部類(基礎)

java 幾種內部類(基礎)

java 內部類(基礎)

內部類就是在一個類的內部定義一個類。比如在A中定義了一個B類,那麼B類性對於A類來說就稱為內部類。而A類相對於B類來說就是外部類了。

1、成員內部類

2、靜態內部類

3、區域性內部類

4、匿名內部類‘

成員內部類

當某個類除了他的外部類。不會被其他類使用時應該選擇使用成員內部類。

public class Outer {
    private int id = 10;
    public void out(){
        System.out.println("這是外部類的方法");
    }
     public    class Inner{
        public void in(){
            System.out.println("這是內部類的方法");
        }

我們可以使用成員內部類來獲得外部的某些私有的屬性

比如獲取上面程式碼私有屬性ID

public void getID(){
             System.out.println(id);
         }

區域性內部類

區域性內部類寫在外部類的某個程式碼塊或者方法塊中,如果只在某個方法或塊中建立這個類的某些物件,可以使用區域性內部類。

匿名內部類

匿名內部類是在new的後面,可以用來實現一個介面或者繼承一個類。

靜態內部類

在宣告的類的時候加上static關鍵字,他與外部類的屬性,方法是並列關係。

程式碼示例

package oop.demo05;
//首先定義一個類
public class Outer {
    private int id = 10;
    public void out(){
        System.out.println("這是外部類的方法");
    }
     public    class Inner{
        public void in(){
            System.out.println("這是內部類的方法");
        }
        //可以獲得外部類的私有屬性
         public void getID(){
             System.out.println(id);
         }
    }
}
//寫一個應有類,呼叫類中的方法
package oop;

import oop.demo05.Outer;

//型別之間的轉換
public class Application {
    public static void main(String[] args) {
           //new 出這個方法
           Outer outer = new Outer();
           //通過這個外部類來例項化內部類
        Outer.Inner inner = outer.new Inner();
        inner.in();
    }
}
package oop;

import oop.demo05.Outer;

//型別之間的轉換
public class Application {
    public static void main(String[] args) {
           //new 出這個方法
           Outer outer = new Outer();
           //通過這個外部類來例項化內部類
        Outer.Inner inner = outer.new Inner();
        inner.in();
    }
}
//一個類中只能有一個public類,但可以有多個class檔案
 class A{
    class B{

     }
 }

狂神說java

有錯誤請指正