【发布时间】:2014-11-23 10:57:06
【问题描述】:
例如,
//Package1/File1.java
class A{
...
}
public class File1{
...
}
如何在不同的 File2.java 中使用 A 类? A 属于什么包? Package1 还是默认?谢谢!
【问题讨论】:
-
尝试google一下,网上有很多解释。
-
从一本好的教科书开始学习java吧!
例如,
//Package1/File1.java
class A{
...
}
public class File1{
...
}
如何在不同的 File2.java 中使用 A 类? A 属于什么包? Package1 还是默认?谢谢!
【问题讨论】:
这两个文件与 package1/file1.java 属于同一个包。 看到这样理解:像file1.java这样的类可以有许多子类作为“类A”,但公共类只能是与文件(file1.java)类同名的类。 我想我在这里有些道理。
【讨论】:
这很简单。在 File2.java 的 main 方法中创建类 File1 的实例,并在那里完成所有工作。
//package1/File2.java
public class File2
{
...
}
public File2() //constructor
{
}
//Main method
public static void main(String[] args)
{
File1 f1 = new File1();
//do your rest of the work here
}
您不能使用 File2.java 中的 A 类,因为它不是公共的,而且 .java 文件中不能有多个公共类。
为了访问File2.java中的类A,你必须在另一个名为A.java的java文件中创建另一个名为A的java类,然后将这个A类公开,并在File2.java中创建A的实例。
内部A.java:
//package1/A.java
public class A{
...
}
public A() //constructor
{
...
}
现在在File2.java:
//package1/File2.java
public class File2()
{
...
}
public static void main(String[] args)
{
A objA = new A();
//do your rest of the work here
}
通过以下链接更好地理解:Why can't two public classes be defined in one file in java?
【讨论】: