在Mac上的Eclipse中导入Java类

在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

我在不同的文件中有两个类(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;

        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.*;