同一个文件中的两个类

时间:2014-12-23 11:30:10

标签: java

我在同一个.java文件中遇到了两个类的问题。 情况就是这样:

package pak1;

public class Example1 {

//some things`enter code here`
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    }
}

class Example2 {
//some things
}

我的问题是:如何在其他包中实例化Example2(如果可能的话)?

5 个答案:

答案 0 :(得分:13)

有两种选择:

  • 将第二个类移动到另一个文件(推荐)
  • 添加修饰符static并将第二个类放入第一个(嵌套类)

答案 1 :(得分:2)

这取决于您想要实例化对象的位置。

由于Example1类为public,因此您可以从任何位置创建该类的实例。 但是Example2具有default访问级别。所以你只能在你的类中创建该类的实例 仅限pak1包

答案 2 :(得分:0)

添加公共静态是关键,但您需要移动示例1中的Example2类

public class Example1 {

    // some things`enter code here`
    public static void main(String[] args) {

    }

    public static class Example2 {
        // some things
    }
}

以及其他地方:

new Example1 .Example2();

答案 3 :(得分:0)

如果文件中必须有多个class必须从另一个包中访问,您始终可以嵌套它。

public class Example1 {
    public class Example2 {

    }
}

然后使用:

访问它
new Example1().new Example2()

或将其移至另一个文件。或者制作static

答案 4 :(得分:0)

我认为你可以尝试完全合格的名字。像:

Blah blah = new other.package.Blah();