java中的方法声明

时间:2015-01-24 16:41:49

标签: return void

我对这段代码有疑问,你可以在某些方法中看到有返回的注释,这是因为我认为我必须使用return方法而不是void方法。我的老师告诉我将它们转换为空类,但是不是一种修改字段变量以返回某些东西的方法吗?我有点怀疑,因为有时候我的老师似乎对编程知之甚少或者有些怀疑,所以请事先感谢你的帮助。

public class ArraysClass {

private int[] array;
private int arrayLength;

public ArraysClass() {
    setArrayLength();
    array = new int[arrayLength];
}

public int setArrayLength() {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter a number to set the length of the array:");
    arrayLength = scanner.nextInt();
    System.out.println();
    return arrayLength;

}

public void fillArray() {
    Scanner scanner = new Scanner(System.in);

    for (int i = 0; i < arrayLength; i++) {
        System.out.println("Type a number to fill position " + i);
        array[i] = scanner.nextInt();
    }
    // return array;
    System.out.println();
}

public void findNumber() {
    Scanner scanner = new Scanner(System.in);

    int tofind, position;
    System.out.println("Enter a number to search it in the array:");
    tofind = scanner.nextInt();
    position = Arrays.binarySearch(array, tofind);
    if (position < 0) {
        System.out.println("We did not find your number.");
    } else {
        System.out.println("The number you typed is in the next position:  " + position);
    }
    System.out.println();
}

public void fillMethod() {
    Scanner scanner = new Scanner(System.in);

    int tofill;
    System.out.println("Enter a number to fill the entire array with:");
    tofill = scanner.nextInt();
    Arrays.fill(array, tofill);
    System.out.println();
    //return array;
}

public void Sortmethod() {
    Arrays.sort(array);
    //return array;
}

private void showArray() {
    System.out.println("Showing the array...");
    for (int i = 0; i < arrayLength; i++) {
        System.out.println(array[i]);
    }
    System.out.println();
}

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    ArraysClass arrayobj = new ArraysClass();
    int choose;
    do {
        do {
            System.out.println("1-Fill the array");
            System.out.println("2-Find a number in the array");
            System.out.println("3-Fill the entire array with a number");
            System.out.println("4-Sort the array");
            System.out.println("5-Show the array");
            System.out.println("6-Exit");
            System.out.println("Which one do you want to use?:");
            choose = scanner.nextInt();
        } while (choose < 1 && choose > 6);
        switch (choose) {
            case 1:
                arrayobj.fillArray();
                break;
            case 2:
                arrayobj.findNumber();
                break;
            case 3:
                arrayobj.fillMethod();
                break;
            case 4:
                arrayobj.Sortmethod();
                break;
            case 5:
                arrayobj.showArray();
                break;
            case 6:
                break;
        }

    } while (choose != 6);

}

}

1 个答案:

答案 0 :(得分:0)

一般来说,如果你需要价值,方法应该return。这是一些程序员使用return boolean的方法,即使是成功或失败的只做方法,也可以是int的状态代码。我不遵循这些方法。当我实现一个方法时,我总是问自己,我想如何使用该方法。如果我需要一个值,那么它将具有它的类型。否则,它将是void。让我们看看你的方法:

setArrayLength :通常,我希望您可以通过此名称向int传递void,表示长度和方法为int。这对于s​​etter来说非常常见,但是在这里你正在读取方法中的实际值,与具有length参数相比,它明显较差,因为如果想要设置数组{{1},你的方法将毫无用处使用未从控制台读取的值。

fillArray :我希望这是void,所以我同意它的声明,但同样,阅读部分不应该在这里。

findNumber :应该将数字作为参数找到并返回int,表示其索引-1,如果找不到。

fillMethod :应该是无效的,并且应该有一个int参数,该参数表示用于填充数组的值。

sortMethod :好的,可能是return生成的数组,但取决于您的需求。

showArray :我希望有PrintStream,你不一定会输出到System.out

一般错误:您将方法与输入/输出操作混合到控制台,这种方式的代码不够通用。