如何在单独的文件夹中引用Java Object类

时间:2015-02-09 23:05:40

标签: java object

我有一个Main课程。我还有另一个课程(称之为“Runner”课程)。但是,我想有更多的Runner类(它们之间的差异是由其他人修改每个Runner类)。是否可以将每个Runner类放在单独的文件夹中,并将文件夹放在与Main类相同的目录中,然后引用Main类中的Runner对象,就好像它们是与Main类在同一目录中的类一样?

1 个答案:

答案 0 :(得分:0)

是的,这个问题让我感到震惊,就像你正在查看像php或ruby等Java一样,并不是很准确。使用Java,每个类都有一个名为"完全合格的名称"它是从它存储的文件夹(如Python)中派生出来的。因为Java是编译的,所以你告诉编译器在哪里找到编译java文件所需的代码,而不是在文件的顶部添加对那些所需文件的引用(比如{{1}在php中的语句)这将是对解释器的指令

比如说你有这样的结构:

require

Main.java

src/
  Main.java
  /runner1
     SomeRunner.java
  /runner2
     SomeOtherRunner.java

SomeRunner.java

public class Main{
  public static void main(String[] args){
     //use SomeRunner
     runner1.SomeRunner.run();
     //use SomeOtherRunner
     runner2.SomeOtherRunner.run();

  }
}

SomeOtherRunner.java

package runner1;
public class SomeRunner{
   public void run(){ ... }
}

或者,您可以使用导入:

Main.java

package runner2;
public class SomeOtherRunner{
   public void run(){ ... }
}

在这个例子中,我选择了任意包名(import runner1.SomeRunner; import runner2.SomeOtherRunner; public class Main{ public static void main(String[] args){ //use SomeRunner SomeRunner.run(); //use SomeOtherRunner SomeOtherRunner.run(); } } runner1),这在技术上很好。但是,最佳实践声明您的包名称应该是项目的反向域名(即runner),以避免与其他库等冲突。您可以阅读有关该here的更多信息。编译com.myproject类时,需要将MainSomeRunner文件提供给编译器,以便它知道在哪里找到它们。