Java 方法太多了?

Java 方法太多了?,java,structure,Java,Structure,我刚刚写的这个课程确实按照我想要的方式工作。我的问题是我是否把它分解成太多的方法?这看起来似乎太过分了,但它看起来很可怕,在主要方法中都很局促。但是现在我有了6个小方法(包括main在内的7个)。我想我在寻找一般性的反馈。非常感谢 我是否应该简单解释一下这节课上发生了什么,以便大家更好地理解 import java.util.Scanner; import java.util.Arrays; public class DuplicateElimination { private static

我刚刚写的这个课程确实按照我想要的方式工作。我的问题是我是否把它分解成太多的方法?这看起来似乎太过分了,但它看起来很可怕,在主要方法中都很局促。但是现在我有了6个小方法(包括main在内的7个)。我想我在寻找一般性的反馈。非常感谢

我是否应该简单解释一下这节课上发生了什么,以便大家更好地理解

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关心其他事情,我猜她写道,“我在寻找一般性反馈”,这并不排除任何东西。