java如何在其他包中使用类?

我可以导入,使用其他包中的类吗? 在Eclipse中我制作了2个包,一个是主要的,另一个是第二个

主要
  - 主(类)
第二
  - 第二(class级)

我希望main类的main函数在第二个类中调用函数x。 我该怎么做? 我试过了:

import second; second.x(); (if both classes are in the same package then it works) second.second.x(); 

但他们都没有工作。 我现在已经不在乎了。

您必须提供要导入的完整路径。

 import com.my.stuff.main.Main;
 import com.my.stuff.second。*;

所以,在你的主要课程中,你有:

包com.my.stuff.main

 import com.my.stuff.second.Second;  //这是您的问题的重要方面

 class Main {
    public static void main(String [] args){
      第二秒=新的第二();
       second.x();  
    }
 }

编辑:添加示例以回应Shawn D的评论

还有另一种选择,正如Shawn D指出的那样,您可以在其中指定要使用的对象的完整包名称。 这在两个地方非常有用。 首先,如果您正在使用该类一次:

 class Main { void function() { int x = my.package.heirarchy.Foo.aStaticMethod(); another.package.heirarchy.Baz b = new another.package.heirarchy.Bax(); } } 

或者,当您想要区分具有相同短名称的两个类时,这非常有用:

 class Main { void function() { java.util.Date utilDate = ...; java.sql.Date sqlDate = ...; } } 

根据您的示例,您需要在main.main类中添加以下导入:

 import second.second; 

一些奖励建议,请确保您的类名称是Java标准。 所以你的示例Main类将具有以下结构:

 package main; //lowercase package names public class Main //titlecase class names { //Main class content } 

它应该像import package_name.Class_Name – >如果要导入特定的类(或)

import package_name.* – >导入包中的所有类