阅读量:0
在Java中,构造函数的访问权限可以设置为以下四种之一:public
、protected
、default
(包访问权限)和private
。
public
:如果构造函数是public
的,那么它可以从任何其他类被访问和调用。这是最常用的访问级别,因为它允许类的实例在程序的任何地方被创建。
public class MyClass { public MyClass() { // 构造函数内容 } }
protected
:如果构造函数是protected
的,那么它只能从同一个包中的类或者子类中被访问和调用。
public class MyClass { protected MyClass() { // 构造函数内容 } } // 在同一个包中的另一个类 class AnotherClassInSamePackage extends MyClass { public AnotherClassInSamePackage() { super(); } }
default
(包访问权限):如果构造函数没有指定访问修饰符,那么它的访问权限就是默认的,也称为包访问权限。这意味着它只能从同一个包中的类被访问和调用。
public class MyClass { MyClass() { // 构造函数内容 } } // 在同一个包中的另一个类 class AnotherClassInSamePackage { public AnotherClassInSamePackage() { MyClass obj = new MyClass(); // 可以访问MyClass的私有构造函数 } }
注意:不能从不同的包中直接访问default
访问级别的构造函数。
private
:如果构造函数是private
的,那么它只能在定义它的类内部被访问和调用。这通常用于实现单例模式或者工厂方法模式等设计模式。
public class MyClass { private MyClass() { // 构造函数内容 } } // 不能从其他类中访问MyClass的私有构造函数