Java 方法太多了?
我刚刚写的这个课程确实按照我想要的方式工作。我的问题是我是否把它分解成太多的方法?这看起来似乎太过分了,但它看起来很可怕,在主要方法中都很局促。但是现在我有了6个小方法(包括main在内的7个)。我想我在寻找一般性的反馈。非常感谢 我是否应该简单解释一下这节课上发生了什么,以便大家更好地理解Java 方法太多了?,java,structure,Java,Structure,我刚刚写的这个课程确实按照我想要的方式工作。我的问题是我是否把它分解成太多的方法?这看起来似乎太过分了,但它看起来很可怕,在主要方法中都很局促。但是现在我有了6个小方法(包括main在内的7个)。我想我在寻找一般性的反馈。非常感谢 我是否应该简单解释一下这节课上发生了什么,以便大家更好地理解 import java.util.Scanner; import java.util.Arrays; public class DuplicateElimination { private static
import java.util.Scanner;
import java.util.Arrays;
public class DuplicateElimination
{
private static Scanner input = new Scanner(System.in);
private static int[] numberArray = new int[5];
private static int initialInput = 0;
public static void main(String[] args)
{
Arrays.fill(numberArray, 0); //initialize array
for (int x = 0; x < numberArray.length; x++) // perform 5x
{
initialInput =getNumber(); //get number from user
boolean inRange = checkRange(); // check if number in range
if (inRange == true)
{
boolean uniqueNumber = uniqueNumber();//check if number is unique
if (uniqueNumber == true)
{
numberArray[0]=initialInput; //add number to array
printUniqueNumbers();
}
else
notUniqueNumber();
}
else
{
notInRange();
x--; // do not count out-of-range numbers as one of the 5 numbers
}
}//end for
}//end main
public static int getNumber()
{
System.out.printf("Please enter a unique number between 10 and 100: ");
int initialInput = input.nextInt();
return initialInput;
}//end getNumber
public static boolean checkRange()
{
boolean inRange;
if ((initialInput >=10) && (initialInput <= 100))
inRange = true;
else
inRange = false;
return inRange;
}//end checkRange
public static boolean uniqueNumber()
{
boolean uniqueNumber;
Arrays.sort(numberArray);
int location = Arrays.binarySearch(numberArray, initialInput);
if (location <= 0)
uniqueNumber = true;
else
uniqueNumber = false;
return uniqueNumber;
}//end uniqueNumber
public static void printUniqueNumbers()
{
System.out.println("List of unique numbers entered: ");
for (int n = 0; n < numberArray.length; n++)
if (numberArray[n] != 0)
System.out.print(numberArray[n] + " ");
System.out.println("\n");
}//end printUniqueNumbers
public static void notUniqueNumber()
{
System.out.print("You already input " + initialInput + ".\n\n");
printUniqueNumbers();
}
public static void notInRange()
{
System.out.println("Number is out of range. Please try again.\n");
}
}//end class
import java.util.Scanner;
导入java.util.array;
公共类重复消除
{
专用静态扫描仪输入=新扫描仪(System.in);
私有静态int[]numberArray=新int[5];
私有静态int initialInput=0;
公共静态void main(字符串[]args)
{
array.fill(numberraray,0);//初始化数组
对于(int x=0;x 如果((initialInput>=10)&(initialInput我会将notUniqueNumber和notInRange操作返回到main方法,因为它们只执行简单的操作,所以最终会得到更少的代码。
人们可能会争辩说,通过引入不同的方法,你可以轻松地修改它们,而不会弄乱主要方法,这是真的。这看起来只是一个小项目,所以只需考虑你的目标和权值利弊
Java方法是一组语句的集合,这些语句组合在一起以
执行一个操作。在本例中,在每个方法中,它都处理单个任务。因此,到目前为止,它很好。在这里,我认为您担心注释和可读性
以下是两种类型的注释:
- 实现注释:-用于注释代码或关于特定实现的注释
- 文档注释:-旨在从无实现的角度描述代码的规范
我认为您可以为类DuplicateElimination
之类的内容提供一些文档注释
/**
* The DuplicateElimination class provides ...
*/
public class DuplicateElimination { ...
格式化
对Java类和接口进行编码时,应遵循以下格式规则:
- 方法名和括号“(“开始其参数列表”)之间没有空格
- 大括号“{”显示在与声明语句相同的行的末尾
- 右大括号“}”开始一行本身缩进以匹配其相应的开始语句,除非它是空语句,“}”应该紧跟在“{”之后
- 方法由一个空行分隔
在这种情况下,
class DuplicateElimination {
private static Scanner input = new Scanner(System.in);;
private static int[] numberArray = new int[5];
private static int initialInput = 0
public static void main(String[] args) {
Arrays.fill(numberArray, 0); //initialize array;
....
}
int emptyMethod() {}
...
}
如果你在Eclipse中
Ctrl
+Shift
+F
就可以了
可读性
以下是Java专业开发人员在编写代码时遵循的一些编程或编码最佳实践。这使代码具有超强的可读性
避免使用毫无意义的名字
无意义的名称,如abc、temp、data等变量名称,不会透露意图,只是降低了可读性
给出有意义的名字
这是第一个编码最佳实践的对应项。提供有意义的名称,而不是毫无意义的名称,这揭示了程序员的意图
如果名字能清楚地表达意图,就更喜欢短一点的名字而不是长一点的
我喜欢在我的方法中使用短名称,但前提是它是完整的并且清楚地揭示了程序员的意图。短名称易于阅读和编写,但不要忘记遵循JavaBean命名约定
阅读更多内容:这确实是基于观点的。有些人喜欢使用尽可能少的代码,因此如果他们可以在没有方法的情况下完成某项任务,他们会这样做;其他人会将每项任务分解为不同的方法。大多数时候,最好像你那样分解。你真的应该在-有几点需要注意修饰。本网站旨在解决您代码中的问题。但请测试您的程序-它真的有效吗?然后在此处编辑您的问题。此外,请查看“我正在投票”的公认答案,将此问题视为离题,因为它更适合您的程序。是否真的存在“无意义的名称”在这个节目中?如果没有-为什么回答这个问题?为什么你不回答呢?看我的三条评论。这是很好的观点,但是@Bianca关心其他事情,我猜她写道,“我在寻找一般性反馈”,这并不排除任何东西。