gpt4 book ai didi

java - 什么是 "non-static method"错误以及 "this"是如何工作的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:02:07 26 4
gpt4 key购买 nike

我有几个非常基本的 Java 问题,我想一劳永逸地最终理解。我有以下一小段代码:

public class VeryBasicJava{
public static void main(String[] args){
int x = 3;
int y = 4;
swapMe(x, y);
}
private void swapMe(int a, int b){
int a;
int b;
int tmp = a;
this.a = b;
this.b = a;
}
}

当我编译时,我得到了可怕的“无法从静态上下文中引用非静态方法 swapMe(int,int)”错误。此外,我得到“a 已在 swapMe(int,int) 中定义”和“b 已在 swapMe(int,int) 中定义”

我最终需要解决的是“非静态方法”错误,它是如何(为什么)产生的,以及如何避免它。

此外,我假设您可以在“swapMe”方法中使用我的“a”和“b”变量来做我想做的事情。我想我可以传入 'a' 和 'b',但也可以创建新变量 'a' 和 'b',并使用“this”关键字引用它们。

我知道这是非常基础的,但这两个“问题”是我使用 Java 的两个主要症结所在,而且由于某种原因,似乎无法正确学习。

谢谢大家花时间阅读本文。祝你有美好的一天。

最佳答案

这意味着 swapMe() 方法是一个实例 方法,您需要 VeryBasicJava 类的实例来调用它,例如这个:

VeryBasicJava instance = new VeryBasicJava();
int x = 3; int y = 4;
instance.swapMe(x, y);

或者,您可以将 swapMe() 声明为 static,这样您就不需要先创建一个实例:

private static void swapMe(int a, int b)

关于java - 什么是 "non-static method"错误以及 "this"是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9775139/

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