gpt4 book ai didi

Java初学者问题: What is wrong with the code below?

转载 作者:搜寻专家 更新时间:2023-11-01 03:59:04 25 4
gpt4 key购买 nike

public class Function
{
public static void main(String args[])
{
System.out.println(power(3,2));
System.out.println(power(3,2));
System.out.println(power(2));
}
public long power(int m)
{
return m*m;
}
public long power(int m,int n)
{
long product=1;
for(int i=1;i<=n;i++)
{
product=product*m;
}
return product;
}
}

编译器显示此错误:-

Function.java:5: 无法从静态上下文中引用非静态方法 power(int,int)

[编辑]

抱歉关于缩进的问题:/我会从现在开始记住这一点。

好的,所以我刚刚添加了 static 关键字,它现在工作正常。这个静态关键字有什么区别?我是 java 的初学者,还没有研究过 static 的作用。我肯定会在本书的后续章节中阅读它,但请有人告诉我它的作用。谢谢。

最佳答案

如错误消息所述,没有对象实例,静态方法 (main) 无法调用非静态方法 (power)。

您应该将 power 方法设为静态。

说明

普通的类方法与类的实例相关联。
例如,String.startsWith method只能在 String 实例上调用。在没有字符串实例的情况下调用 startsWith 是没有意义的。

有时,您会希望创建一个不需要类实例的方法。
例如,Integer.parseInt method不在 Integer 实例上调用。仅仅为了能够调用 Integer.parseInt 而必须创建一个 Integer 实例是没有意义的。
这些方法称为 static 方法。

main 是一个static 方法的例子。因为它不是在您的 Function 类的实例上调用的,所以它不能调用实例方法。 (因为没有调用它们的实例)

关于Java初学者问题: What is wrong with the code below?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3047079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com