java構(gòu)造函數(shù)的訪問權(quán)限如何設(shè)置

小樊
81
2024-09-21 05:33:45
欄目: 編程語言

在Java中,構(gòu)造函數(shù)的訪問權(quán)限可以設(shè)置為以下四種之一:public、protecteddefault(包訪問權(quán)限)和private。

  1. public:如果構(gòu)造函數(shù)是public的,那么它可以從任何其他類被訪問和調(diào)用。這是最常用的訪問級(jí)別,因?yàn)樗试S類的實(shí)例在程序的任何地方被創(chuàng)建。
public class MyClass {
    public MyClass() {
        // 構(gòu)造函數(shù)內(nèi)容
    }
}
  1. protected:如果構(gòu)造函數(shù)是protected的,那么它只能從同一個(gè)包中的類或者子類中被訪問和調(diào)用。
public class MyClass {
    protected MyClass() {
        // 構(gòu)造函數(shù)內(nèi)容
    }
}

// 在同一個(gè)包中的另一個(gè)類
class AnotherClassInSamePackage extends MyClass {
    public AnotherClassInSamePackage() {
        super();
    }
}
  1. default(包訪問權(quán)限):如果構(gòu)造函數(shù)沒有指定訪問修飾符,那么它的訪問權(quán)限就是默認(rèn)的,也稱為包訪問權(quán)限。這意味著它只能從同一個(gè)包中的類被訪問和調(diào)用。
public class MyClass {
    MyClass() {
        // 構(gòu)造函數(shù)內(nèi)容
    }
}

// 在同一個(gè)包中的另一個(gè)類
class AnotherClassInSamePackage {
    public AnotherClassInSamePackage() {
        MyClass obj = new MyClass(); // 可以訪問MyClass的私有構(gòu)造函數(shù)
    }
}

注意:不能從不同的包中直接訪問default訪問級(jí)別的構(gòu)造函數(shù)。

  1. private:如果構(gòu)造函數(shù)是private的,那么它只能在定義它的類內(nèi)部被訪問和調(diào)用。這通常用于實(shí)現(xiàn)單例模式或者工廠方法模式等設(shè)計(jì)模式。
public class MyClass {
    private MyClass() {
        // 構(gòu)造函數(shù)內(nèi)容
    }
}

// 不能從其他類中訪問MyClass的私有構(gòu)造函數(shù)

0