【问题标题】:Should these parameters be constants or a regular integer?这些参数应该是常量还是常规整数?
【发布时间】:2021-11-02 18:12:01
【问题描述】:

我有这3个final,我不确定它们是否应该是final,下面有一个使用示例,请假设userNum被扫描,谢谢。

final int HUNDREDS_DIGIT = 100;
final int TENS_DIGIT = 10;
final int SINGLES_DIGIT = 10;

//Calculates and prints the difference between user number and its reverse.
System.out.println("User number is: " + userNum); 
int firstDigit = userNum / HUNDREDS_DIGIT;
int secondDigit = userNum / TENS_DIGIT % TENS_DIGIT;
int thirdDigit = userNum % SINGLES_DIGIT;
int reversedNum = thirdDigit * HUNDREDS_DIGIT + secondDigit * TENS_DIGIT + firstDigit;
int difference = Math.abs(userNum - reversedNum);

【问题讨论】:

  • 是的 - 他们应该是final。还有static,因为值不会从一个实例更改为另一个实例。

标签: java constants final


【解决方案1】:

要确定这些值是否应该是最终值,您应该问自己是否希望它们的值在程序执行期间发生变化。

在我看来,如果这些值发生变化,它会产生不正确的结果,所以 final 是一个不错的选择。

也就是说这些可能不必是常数,userNum /100 的意图相当明确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 2017-12-27
    • 1970-01-01
    • 2012-01-31
    • 2021-07-25
    • 1970-01-01
    相关资源
    最近更新 更多