在Mac上的Eclipse中导入Java类
我在不同的文件中有两个类(CoinFlip和Incr),我正在尝试导入Incr以在CoinFlip中使用:在Mac上的Eclipse中导入Java类,java,import,Java,Import,我在不同的文件中有两个类(CoinFlip和Incr),我正在尝试导入Incr以在CoinFlip中使用: package com.iRprojects.Book.Java; import java.util.*; import com.iRprojects.Book.Java.*; public class CoinFlip { public static void main(String[] args) { int g = 5; Syste
package com.iRprojects.Book.Java;
import java.util.*;
import com.iRprojects.Book.Java.*;
public class CoinFlip {
public static void main(String[] args) {
int g = 5;
System.out.println(incr(g));
}
}
及
对于像这样的类,eclipse说找不到incr()
如果我将其更改为:
package com.iRprojects.Book.Java;
import java.util.*;
//import com.iRprojects.Book.Java.*;
public class CoinFlip {
public static void main(String[] args) {
int g = 5;
System.out.println(com.iRprojects.Book.Java.Incr.incr(g));
}
}
它编译得很好。
有什么想法吗?您的代码不正确……您试图访问incr,就好像它是一个本地方法来类CoinFlip一样 事实上,它是在Incr类中定义的,因此应该像这样访问:
System.out.println(new Incr().incr(g));
也请考虑使用适当的Sun建议来进行包声明。
< > >代码> iCr()<代码>是一个静态的方法,<代码>当您没有显式地声明类名时,java将只查看包含的类。由于CoinFlip
未实现incr()
,因此会出现错误
您也不需要类名的完全限定路径,
Incr.Incr()
就可以了。在这种情况下,您必须编写:
import static com.iRprojects.Book.Java.Incr.*;
这意味着从com.iRprojects.Book.Java.Incr类导入所有静态成员,并考虑访问修饰符。使用静态导入或写入Incr.Incr()是的,在我知道使用所有小写字母之前,我就创建了该包名。所以,即使它是静态方法,我在导入另一个类时仍然必须创建一个对象?不,你不需要。请参阅@unholysampler等人给出的答案。只是为了澄清,这不仅会导入静态方法,还会导入静态字段。
import static com.iRprojects.Book.Java.Incr.*;