gpt4 book ai didi

java - 传递变量与访问类字段

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:53:17 24 4
gpt4 key购买 nike

我有一个关于程序风格的问题。在一个类中,是将变量传递给方法更好还是在方法内部访问字段更好?

public class NumberTest{
private int num;

public NumberTest (int num){
this.num = num;
calculateX(num);
calculateY();
}

private void calculateX(int num){
System.out.println (num);
}

private void calculateY(){
System.out.println(num)
}
}

最佳答案

我会与这里的其他人不同......

在所有合理的地方,我喜欢传递论点。这非常轻微地将方法与类实现分离,并使其更容易进行单元测试。例如,有时由于其他限制,将 this.num 设置为 94404 是一个非常复杂的过程。

例如这是邮政编码,但您的业务逻辑要求它必须与州和国家/地区字段匹配。或者,实际上这个字段是从数据库、网站等读取的……

如果您传递参数,您的单元测试可以简化并只传递值。而且,如果您将来可能遇到特殊情况,您不想使用类字段中的内容,您可以这样做。

现在,如果您使用 27 个类字段,您显然不想传入 27 个参数。但是,IMO,如果是 1 或 2,我喜欢将它们传入。

接受后添加的次要注意事项:

传入 arg 和使用字段之间可能还有另一个区别。在多线程环境中,使用传入的参数可能比从字段读取更安全。该字段可能会在函数中间发生变化,而传入的参数根据类型和用途不太可能发生变化。在此示例中,传入的 int num 永远不会意外更改,但 this.num 可能。

关于java - 传递变量与访问类字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15350091/

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