我可以导入,使用其他包中的类吗?在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();
Run Code Online (Sandbox Code Playgroud)
但他们都没有工作.我现在不在乎.
atk*_*atk 29
您必须提供要导入的完整路径.
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();
}
}
Run Code Online (Sandbox Code Playgroud)
或者,当您想要区分具有相同短名称的两个类时,这非常有用:
class Main {
void function() {
java.util.Date utilDate = ...;
java.sql.Date sqlDate = ...;
}
}
Run Code Online (Sandbox Code Playgroud)
以您的示例为例,您需要在main.main类中添加以下导入:
import second.second;
Run Code Online (Sandbox Code Playgroud)
一些额外的建议,请确保为类名加上大写字母,因为这是Java标准。因此,您的示例Main类将具有以下结构:
package main; //lowercase package names
public class Main //titlecase class names
{
//Main class content
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
122316 次 |
| 最近记录: |