我在同一个.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(如果可能的话)?
答案 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();