此代码中 void 和 int 用法的区别

Difference between the usage of void and int in this code

目前是初学者,我编写了一个使用 getter 和 return 值的简单程序(当前课程)。请问什么时候用void方案和int方案,结果一样吗?

我真的希望格式不要太糟糕。

class Database {
    String name;
    int age;

    String getName() {
        return name;
    }

    int getAge() {
        return age;
    }

    int yearsPlusFifty() {
        int year = age + 50;
        return year;
    }

    void plusFifty() {
        int year2 = age + 50;
        System.out.println(year2);
    }
}

public static void main(String args[]) {

    Database person1 = new Database();
    person1.name = "Josh";
    person1.age = 30;

    int year = person1.yearsPlusFifty();
    System.out.println("The age plus 50 is: " + year);

    person1.plusFifty();
}

使用 int 方法 (yearsPlusFifty),因为它有一个责任 - 计算值。 plusFifty 中的 Printl 是一种副作用,这是不可取的。将计算和打印的职责分开(使其更可重用、可测试且更易于理解)。

基本上,当您的方法没有 return 值时,应使用 void,而当您的方法 returns int 值时,将使用 int .

现在来看你的方法,它们并不相同,它们在做两件不同的事情:

int yearsPlusFifty() - 添加 50 并返回 int

void plusFifty() - 最好重命名为 printPlusFifty() - 此方法同时添加和打印

int yearsPlusFifty() {//only adding and returning int value
    int year = age + 50;
    return year;
}

  void printPlusFifty() {//adding + printing
        int year2 = age + 50;
        System.out.println(year2);
    }