通过 return 值更改字段与通过在方法中引用它们来更改字段?

Altering fields via return values vs. altering fields by referencing them within methods?

假设我有一个私有整数 x 作为 class 示例中的一个字段,我想将这个整数设置为 1。目前我有两种方法可以做到这一点:

//Choice 1
public class Example{

    private int x;

    // Class Constructor
    public Example(){

        x = setX();

    }

    private int setX(){

        return 1;

    }

}

//Choice 2
public class Example{

    private int x;

    // Class Constructor
    public Example(){

        setX();

    }

    private void setX(){

        x = 1;

    }

}

我想知道哪种方式在 space 和时间方面是最佳的,或者它是否重要。如果差异可以忽略不计,哪种方式是最佳做法?

同理,当我想要一个方法使用 class 字段时,是将该字段作为参数传递还是仅在方法中引用它更好?

关于你问题的最后一部分:对象的方法可以访问对象的状态。将其作为参数传递是不必要的。

关于第一部分:你展示的备选方案最大的问题并不是真正选择哪个。最大的问题是命名。

一个名为 setX() 的方法需要设置 x 的值。 Java 开发人员会期望这样的 setter 接受参数。一个叫做 setX() 的方法除了 returns 之外什么都不设置,一个计算值应该被称为 getSomeValue()computeSomeValue()