是否可以初始化内部类的实例,该实例在外部类中具有标记为private的构造函数。我的印象是,一旦构造函数被声明为private,没有人可以创建该类的实例,除非在类本身内。实施例
Public class Outerclass
{
newinstance = new Innerclass();
private final class InnerClass
{
private InnerClass(//paremeters)
{
//constructor declaration inside
}
}
}
答案 0 :(得分:2)
内部类是其外部类的成员,因此他们可以完全访问所有其他成员,并且所有其他成员都可以完全访问它们。
内部类中的访问标记仅适用于不相关的类。而且由于你的内部类本身就是私有的,所以只能从外部类中进行构造。
答案 1 :(得分:0)
我认为你需要研究Singleton模式。您不能声明其构造函数被标记为私有的类的实例,但您始终可以在该类中使用私有属性声明静态方法。因此,当您调用内部类的静态方法时,它会将该类的唯一实例返回给调用者。
答案 2 :(得分:0)
您可以在外部类上定义一个公共方法,以便实例化内部类:
public void instantiateInnerClass() {
myAttribute = this.new InnerClass();
}
但是,您将无法直接访问和操作内部类的实例。