Java can';不要从一个包中使用另一个包中的公共方法

Java can';不要从一个包中使用另一个包中的公共方法,java,package,static-methods,public-method,Java,Package,Static Methods,Public Method,在同一个项目中,我有两个包,第一个包包含一个具有以下代码的类: package com.ginger; public class SimplePrint { public SimplePrint(){} public static void print(Object obj) { System.out.println(obj); } } 我想在另一个包的另一个类中使用方法print(),但在同一个项目中 import com.

在同一个项目中,我有两个包,第一个包包含一个具有以下代码的类:

package com.ginger;

public class SimplePrint 
{   

    public SimplePrint(){}

    public static void print(Object obj)
    {
        System.out.println(obj);
    }   
}
我想在另一个包的另一个类中使用方法
print()
,但在同一个项目中

import com.ginger.*;

public class MainClass 
{

    public static void main(String[] args)
    {
        print("Some");
    }
}
但是编译器告诉我第二个类的方法
print()
是未定义的

同时,我能够在第二个类中创建对象
SimplePrint s=newsimpleprint()


我是编程新手,如果我想问一些简单的问题,请原谅。

有几种方法可以做到这一点:

非静态 删除方法
print
static
关键字并创建类的实例

SimplePrint simplePrint = new SimplePrint();
就这么做吧

simplePrint.print("");
SimplePrint.print("");
或将上述内容合并为一行:

new SimplePrint().print("");
静止的 保持
print
方法
static
,然后执行此操作

simplePrint.print("");
SimplePrint.print("");

方法的static关键字意味着它是类级别的


如果像static这样的关键字不用于方法,则表示实例级别,所以请创建实例,然后访问它。

是否将第一个包导入到类中<代码>导入您的PackageName.theclassinpackagename
导入您的PackageName.*。伙计!你真的需要学习java。首先,打印方法不需要使用static。如果需要访问SimplePrint类的任何方法,则需要创建该类的对象,以便可以访问该类的实例变量和方法。这里是SimplePrint SimplePrint1=新SimplePrint();SimplePrint.print();非常感谢。它起作用了。我刚刚误解了静态的工作原理。请注意,您也可以使用,例如,
import static com.ginger.SimplePrint.print。这样原始的
打印(“一些”)语句也会起作用。EricBouwers-现在我明白了!!!哦,谢谢你!这是我的错误,我忘记了导入静态。这正是我想要做的。如果
SimplePrint.print(“”)
仍然不起作用,请确保在方法范围内执行此操作。希望这能为其他人节省时间。