溫馨提示×

java內部類怎么用

小億
94
2024-12-07 08:40:38
欄目: 編程語言

Java內部類是定義在另一個類中的類。使用內部類可以帶來一些好處,例如更好的封裝、代碼組織以及支持多態。以下是Java內部類的一些常見用法:

  1. 訪問外部類的成員:內部類可以訪問外部類的所有成員(包括私有成員),而無需在外部類中聲明它們為public。
class OuterClass {
    private int data = 10;

    class InnerClass {
        void display() {
            System.out.println("Data from outer class: " + data);
        }
    }
}

public class Main {
    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        OuterClass.InnerClass inner = outer.new InnerClass();
        inner.display(); // 輸出:Data from outer class: 10
    }
}
  1. 靜態內部類:使用static關鍵字聲明的內部類稱為靜態內部類。靜態內部類不能訪問外部類的非靜態成員,因為它們不依賴于外部類的實例。
class OuterClass {
    private int data = 10;

    static class StaticInnerClass {
        void display() {
            System.out.println("Data from outer class: " + data);
        }
    }
}

public class Main {
    public static void main(String[] args) {
        OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
        inner.display(); // 輸出:Data from outer class: 10
    }
}
  1. 內部類的實例:要創建內部類的實例,需要先創建外部類的實例,然后使用該實例創建內部類的實例。
class OuterClass {
    class InnerClass {
        void display() {
            System.out.println("Inner class instance");
        }
    }
}

public class Main {
    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        OuterClass.InnerClass inner = outer.new InnerClass();
        inner.display(); // 輸出:Inner class instance
    }
}
  1. 內部類與接口:內部類可以實現一個或多個接口,并在其方法中實現接口的方法。
interface MyInterface {
    void display();
}

class OuterClass {
    class InnerClass implements MyInterface {
        @Override
        public void display() {
            System.out.println("Display method from inner class");
        }
    }
}

public class Main {
    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        OuterClass.InnerClass inner = outer.new InnerClass();
        inner.display(); // 輸出:Display method from inner class
    }
}
  1. 內部類與多態:內部類可以繼承其他類或實現接口,從而實現多態。
class BaseClass {
    void display() {
        System.out.println("Display method from base class");
    }
}

class DerivedClass extends BaseClass {
    @Override
    void display() {
        System.out.println("Display method from derived class");
    }
}

class OuterClass {
    class InnerClass extends DerivedClass {
        void display() {
            System.out.println("Display method from inner class");
        }
    }
}

public class Main {
    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        OuterClass.InnerClass inner = outer.new InnerClass();
        inner.display(); // 輸出:Display method from inner class
    }
}

這些示例展示了Java內部類的基本用法。您可以根據需要使用內部類來滿足您的編程需求。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女