我之前遇到过一个错误,但是当我在这个类中创建一个对象并调用该方法时,它完美地工作。有什么解释吗?我是否总是必须创建一个对象来调用 main 方法之外的方法(但在同一个类中)?这里:public class A{ public static void main(String[] args){ A myObj= new A(); System.out.println(myObj.lets(2)); } public int lets(int x){ return x; }}
2 回答
catspeake
TA贡献1111条经验 获得超0个赞
你需要了解static。它将方法或字段关联到类本身(而不是类的特定实例)。当程序开始执行时,JVM 不会A在调用之前实例化 的实例main(因为main是static并且因为没有A要使用的特定实例);这使它成为一个全球性的入口点。要调用lets你需要一个A(如你所见),或者依次创建它static(你也可以限制它的可见性)
private static int lets(int x) {
return x;
}
接着
System.out.println(lets(2));
足够了。我们也可以把它一般像
private static <T> T lets(T x) {
return x;
}
然后使用任何类型调用它(尽管该类型仍然必须覆盖toString(),以便结果在与 一起使用时特别有用System.out.println)。
添加回答
举报
0/150
提交
取消