【问题标题】:Gives me an error while creating an object in java在java中创建对象时给我一个错误
【发布时间】:2017-03-07 12:12:42
【问题描述】:

我在使用 Java 中定义的类创建对象时遇到错误。 这是我的代码:

public class encapsulation {

    class Emp
    {
        int empId;
        String empName;
    }

    public static void main(String[]args)   
    {
        Emp e1 = new Emp();
    }
}

但它给了我一个错误:

没有可访问类型封装的封闭实例。必须使用封装类型的封闭实例来限定分配(例如 x.new A(),其中 x 是封装实例)。

这是截图:Error in object creation using java

【问题讨论】:

    标签: java android eclipse


    【解决方案1】:

    您正在尝试实例化内部类的对象。内部类实例总是需要与外部类实例相关联。试试这个 -

    public static void main(String[]args)
    {
        encapsulation en = new encapsulation();
        encapsulation.Emp e1 = en.new Emp();
    }
    

    查看the official tutorial 了解更多信息。

    【讨论】:

      【解决方案2】:

      当您在encapsulation 中有一个内部类Emp 时,Emp 的任何instance 都属于encapsulation 的一个instance。如果您不希望这样,可以通过添加 static 修饰符将其改为嵌套类:

      public class encapsulation {
          static class Emp {
          ......
      

      现在Emp 被声明为static,它不属于encapsulation 的任何特定实例,因此您不需要实例化encapsulation 来实例化Emp

      【讨论】:

      • @ErPriyatam 很高兴为您服务。
      猜你喜欢
      • 1970-01-01
      • 2019-01-06
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      相关资源
      最近更新 更多