在做小型的单一类程序时,我应该将所有内容设为静态或者在main中实例化自身的副本吗?

5 java

当我在课堂上完成家庭作业时,如果程序很小,将问题保持在一个班级(使用我们的脚本很容易提交),通常是有益的.

对于这些一次性程序,将所有方法和实例变量声明为静态更有意义,还是在main方法中声明类本身的实例更有意义?

所以,例如:

一个.

public class MergeSort
{
   public static Scanner input = new Scanner(System.in);

    public static void main(String[] args)
    {
        int[] randData = getRandomData();
        int[] sortedData = mergeSort(randData);
    }

    public static int[] mergeSort(int[] unsortedData)
    {
        // ...
    }

    public static int[] merge(int[] data, int a, int b, int c)
    {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

VS

B.

public class MergeSort  
{  
   public Scanner input = new Scanner(System.in);

    public static void main(String[] args)
    {
        MergeSort ms = new MergeSort();
        int[] randData = ms.getRandomData();
        int[] sortedData = ms.mergeSort(randData);
    }

    public int[] mergeSort(int[] unsortedData)
    {
        // ...
    }

    public int[] merge(int[] data, int a, int b, int c)
    {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

Bin*_*ier 12

就个人而言,我会选择B,这是一个很好的习惯.默认情况下将每个方法设为静态都是一个不好的习惯.

它曾经是一个"它取决于个人意见"的决定,但随着单位测试的兴起,静态方法往往更有害.您不能static在接口上指定方法,这使得为类创建接口变得困难,这使得您的类难以模拟/存根进行单元测试.

  • 而"一切都是静止的"是一个应该避免的坏习惯 (4认同)