首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内部类中的私有构造器在外部类内初始化

内部类中的私有构造器在外部类内初始化
EN

Stack Overflow用户
提问于 2014-10-16 21:06:49
回答 3查看 54关注 0票数 0

是否可以从外部类中初始化具有标记为私有的构造函数的内部类的实例。我的印象是,一旦一个构造函数被声明为私有,除了类本身之外,没有人可以创建该类的实例。示例

代码语言:javascript
复制
Public class Outerclass 
    {
        newinstance = new Innerclass();

       private final class InnerClass 
       {
         private InnerClass(//paremeters)
         {
            //constructor declaration inside
          } 
       }
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-16 21:13:16

内部类是其外部类的成员,因此它们可以完全访问所有其他成员,所有其他成员都可以完全访问它们。

内部类中的访问标记仅适用于不相关的类。因为您的内部类本身是私有的,所以它只能从其外部类进行构造。

票数 2
EN

Stack Overflow用户

发布于 2014-10-16 21:11:12

我觉得你需要调查一下单身模式。不能声明构造函数标记为私有的类的实例,但始终可以使用私有属性在该类中声明静态方法。因此,当调用内部类的静态方法时,它会将该类的唯一实例返回给调用方。

pattern

票数 0
EN

Stack Overflow用户

发布于 2014-10-16 21:19:59

您可以在外部类上定义一个公共方法,该方法允许实例化内部类:

代码语言:javascript
复制
public void instantiateInnerClass() {
    myAttribute = this.new InnerClass();
}

但是,您将无法直接访问和操作内部类的实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26413890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档