首页 > 解决方案 > 这些参数应该是常量还是常规整数?

问题描述

我有这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);

标签: javaconstantsfinal

解决方案


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

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

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


推荐阅读