gpt4 book ai didi

java - 为什么我不能在任何方法之外修改类成员变量?

转载 作者:行者123 更新时间:2023-12-02 01:45:52 24 4
gpt4 key购买 nike

我有一个带有一些变量的类。当我在主类中实例化该类的对象时。我只能访问和修改一个方法中的成员变量,任何方法;不在他们之外。这是为什么?我陷入困境,似乎无法在 Google 上找到答案。

class SomeVariables{
String s;
int dontneed;
}
class MainClass{
SomeVariables vars= new SomeVariables();

vars.s = "why this doesnt work?. IDE says Uknown class 'vars.s'";
System.out.println(vars.s); // Accesing it also doesnt work

void ChangeValue(){
vars.s = "why does this work?";
}

public static void main(String[]args){
}
}

我还尝试了访问说明符并得到了相同的结果

最佳答案

它不起作用,因为您在构造函数或方法之外定义实例,这不是有效的 Java 语法。

可能的解决方法是:

class SomeVariables {
String s;
int dontneed;
}

class MainClass {
public static void main(String[]args){
SomeVariables vars = new SomeVariables();

vars.s = "why this doesnt work?. IDE says Uknown class 'vars.s'";
System.out.println(vars.s);
}
}

但是您可能需要考虑保护类变量,例如将所有属性设置为 SomeVariables 并使用 settersgetters 方法来获取和修改类本身的值。例如:

class SomeVariables {
private String s;
private int dontneed;

// Constructor method
public SomeVariables() {
// Initialize your attributes
}

public String getValue() {
return s;
}

public void setValue(String value) {
s = value;
}
}

class MainClass {
public static void main(String[]args){
SomeVariables vars = new SomeVariables();

vars.setValue("Some value");

System.out.println(vars.getValue());
}
}

关于java - 为什么我不能在任何方法之外修改类成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53675473/

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