打印姓名,年龄和性别的简单方法是在一个主要方法中对其进行编码。为什么我们必须制作多种方法呢?
public static void main(String[] args) {
sayMaster();
Age();
Gender();
}
static void sayMaster() {
System.out.println("Hello Master Austin");
}
static void Age() {
System.out.println(7);
}
static void Gender() {
System.out.println("Robot");
}
答案 0 :(得分:1)
为什么我们必须制作多种方法呢?
实际上你根本不需要,但模块化是关键(记住divide et impera规则),您可以/需要更改其中一种方法,而不会出现代码被破坏的问题。
然后当你有这3种方法时,你总能做一个像
这样的优雅解决方案public static void main(String[] args) {
invokeThemAll();
}
public static void invokeThemAll() {
sayMaster();
printAge();
printGender();
}
答案 1 :(得分:0)
首先,没有人强迫你制作只打印3个字符串的方法。
制作方法更可取。考虑必须执行此任务1000次的方案。您只需调用方法并发送参数,而不是写入1000次打印语句,只需3行代码即可完成休息。
答案 2 :(得分:0)
考虑一下:
您可以在哪个示例中立即告诉代码应该做什么?
示例1
public static void main(String... args) {
A a = new A();
// CODE
// CODE
// CODE
// CODE
// ... 100 lines of setting up A
B b = new B(a);
// CODE
// CODE
// CODE
// CODE
// ... 100 lines of setting up B
// CODE
// CODE
// CODE
// CODE
// ... 500 other lines of code using a and b
}
示例2
public static A setupA() {
A a = new A();
// CODE
// CODE
// CODE
// CODE
// ... 100 lines of setting up A
return a;
}
public static B setupB() {
B b = new B();
// CODE
// CODE
// CODE
// CODE
// ... 100 lines of setting up B
return b;
}
public static void doFancyAlgorithm(A a, B b) {
// CODE
// CODE
// CODE
// CODE
// 500 other lines of code using a and b
}
public static void main(String... args) {
A a = setupA();
B b = setupB();
doFancyAlgorithm(a, b);
}
显然,示例2更容易阅读并且理解,因为它只包含3行,并且因为不同的职责被封装到不同的方法中。在不知道所述方法的实际实现的情况下,您将能够通过查看方法序列来了解主要功能。而在示例1中,您需要浏览每行代码才能理解。
此外,请考虑在代码中添加一些新功能:
public static void main(String... args) {
A a = setupA();
B b = setupB();
doFancyAlgorithm(a, b);
A a2 = setupA(); // new instance of a because we absolutely need that
C c = setupC();
doAnotherAlgorithm(a2, c);
}
现在,在设置A
的新实例的情况下,我们可以简单地重复使用方法setupA()
,这使得一切变得更轻松。否则我们需要重新设置整行100行。
这有另一个巨大的好处。如果您需要更改代码中的某些行,则只需要在一个地方(一次在方法内部而不是在代码发生的任何地方)更改它,这可以防止疏忽,复制 - 错误等等。