我不明白为什么我必须在这段代码中使用square()?为什么我不能在String中添加n次n?
static int square(int n){
return n*n;
}
static void ausgabe(int n){
String s;
int i = n;
s = "SquareOf" + i + " = " + square(i);
Sysout(s);
}
我的解决方案是错过方法,只需添加如下
s = "SquareOf" + i + " = " + i*i;
我试过,结果总是正确的。但是我们的书提出了第一种方式,我想知道为什么它们会让我的眼睛变得更加复杂。
提前致谢。
答案 0 :(得分:3)
嗯,你是部分正确的,但是当你根据他们所做的事情拆分东西时,软件的开发会更好......
方法 Ausgabe 有一项工作:仅显示结果
square 方法有一个工作:只进行数学运算
因此软开发背后的重点不在于代码的工作原理
我们尝试做其他事情:
所有这些要求都与项目的复杂性有关,可以基于single responsibility principle
来达成答案 1 :(得分:2)
对于像unique_ptr<Foo> foo(new Foo);
boost:map_ptr<int, Foo> m;
m.insert(5, foo); // Does not compile
m.insert(5, move(foo)); // Does not compile either,
// this should be the right thing to do
m.insert(5, move.release()); // Does compile, but isn't exception safe
这样微不足道的东西,你不需要一个方法。但是,如果不得不做一个需要相当多行代码的更复杂的操作,那么将它放在自己的方法中是个好主意,以保持代码清洁,易于阅读,理解和维护。此外,如果您需要在程序中的多个点执行相同的操作,那么方法将是有益的,因为您不必在不同的地方反复复制/粘贴相同的代码。