java - 如何通过调用方法来分配类变量值?

标签 java

我正在尝试通过一种方法为类变量赋值。但是,在执行超出方法范围后,该变量仍被初始化为默认值。我们如何在 Java 中实现这一点?

我想通过调用方法 hello() 将 x 初始化为 5。我不想使用构造函数或使用它进行初始化。可能吗?

public class Test {
    int x;
    public void hello(){
        hello(5,x);
    }
    private void hello(int i, int x2) {
        x2 = i;
    }
    public static void main(String args[]){
        Test test = new Test();
        test.hello();
        System.out.println(test.x);
    }
}

最佳答案

当你做的时候

hello(5,x);

然后

private void hello(int i, int x2) {
    x2 = i;
}

看起来您可能正在尝试将 field 本身作为参数传递给 hello 方法,并且在执行 x2 = i 时您x2 表示 字段。这是不可能的,因为 Java 只支持按值传递。 IE。每当您将变量作为参数传递给方法时,它包含的值将被传递,而不是变量本身。

(感谢 @Tom 在评论中指出对问题的这种解释。)

关于java - 如何通过调用方法来分配类变量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669458/

相关文章:

java - GAE + Cloud Storage + Guava = Appspot 上的 NoSuchMethodError?

java - 如何移动 java gui 元素?

java - Hibernate:将列子字符串映射到字段

java - 使用 FormDataMultiPart 发送实体和文件

java - elasticsearch date_format异常

java - ORA-08103 : object no longer exists: This error is occuring for Oracle Procedure returning Refcursor from MyBatis

java - 自定义对话框构造函数

java - 与 xlsx 包和 choose.files 冲突

java - 为什么 Grails 需要 Xerces?

java - 基于列将两个文本文件映射为一个的有效方法