java內(nèi)部類的實(shí)現(xiàn)方法是什么

小億
109
2023-11-30 14:20:22
欄目: 編程語言

Java內(nèi)部類的實(shí)現(xiàn)方法有以下幾種:

  1. 成員內(nèi)部類:將一個(gè)類定義在另一個(gè)類的內(nèi)部,作為外部類的成員。成員內(nèi)部類可以訪問外部類的成員變量和方法,包括私有成員。
public class OuterClass {
    private int outerVar;

    public class InnerClass {
        public void innerMethod() {
            outerVar = 10; // 訪問外部類的成員變量
            outerMethod(); // 訪問外部類的方法
        }
    }

    public void outerMethod() {
        // ...
    }
}
  1. 靜態(tài)內(nèi)部類:與成員內(nèi)部類相比,靜態(tài)內(nèi)部類沒有對(duì)外部類的引用,可以直接創(chuàng)建靜態(tài)內(nèi)部類的實(shí)例,不需要先創(chuàng)建外部類的實(shí)例。
public class OuterClass {
    private static int outerVar;

    public static class InnerClass {
        public void innerMethod() {
            outerVar = 10; // 訪問外部類的靜態(tài)成員變量
            outerMethod(); // 訪問外部類的靜態(tài)方法
        }
    }

    public static void outerMethod() {
        // ...
    }
}
  1. 方法內(nèi)部類:將一個(gè)類定義在方法內(nèi)部,作為方法的局部變量。方法內(nèi)部類只能在方法內(nèi)部訪問,不能在方法外部訪問。
public class OuterClass {
    public void outerMethod() {
        class InnerClass {
            public void innerMethod() {
                // ...
            }
        }

        InnerClass inner = new InnerClass();
        inner.innerMethod();
    }
}
  1. 匿名內(nèi)部類:沒有名字的內(nèi)部類,用于創(chuàng)建一個(gè)實(shí)現(xiàn)某個(gè)接口或繼承某個(gè)類的匿名對(duì)象。通常在創(chuàng)建對(duì)象時(shí)直接定義并實(shí)現(xiàn)接口或繼承類的方法。
public class OuterClass {
    public void outerMethod() {
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                // ...
            }
        };

        Thread thread = new Thread(runnable);
        thread.start();
    }
}

0