繁体   English   中英

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

[英]java how to use classes in other package?

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

main
 -main (class)
second
 -second (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.*;

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

package com.my.stuff.main

import com.my.stuff.second.Second;   // THIS IS THE IMPORTANT LINE FOR YOUR QUESTION

class Main {
   public static void main(String[] args) {
      Second second = new Second();
      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.* - >导入包中的所有类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM