3 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
這個(gè)
public Monom Der() {
double a = this.get_coef() * this.get_pow();
int b = this.get_pow() - 1;
return new Monom(a, b);
}
不改變實(shí)例的狀態(tài),當(dāng)你想要不可變的對(duì)象時(shí)它很有用。它可用于處理初始狀態(tài)和處理后狀態(tài)兩種狀態(tài)
Monom initialMonom = new Monom(2, 2);
Monom theNewMonom = initialMonom.Der();
// do something with both initialMonom and theNewMonom
這個(gè)
public void Der() {
this.set_coefficient(this._power * this._coefficient);
this.set_power(this._power - 1);
}
更改當(dāng)前實(shí)例的狀態(tài),因此該實(shí)例不是不可變的。當(dāng)需要重用實(shí)例時(shí)它會(huì)很有用
Monom initialMonom = new Monom(2, 2);
// do something with initial monom
initialMonom.Der(); // mutate the initial monom
// do something with the new state

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
你可以谷歌一下了解詳情。一開(kāi)始這里有很多東西。
區(qū)別:一個(gè)是返回一個(gè) Object Monom,一個(gè)是“void”
為什么:這取決于您的業(yè)務(wù)或您想要構(gòu)建的代碼的目的。返回的對(duì)象用于下一步或僅顯示數(shù)據(jù)。“void”意味著您不想獲取任何數(shù)據(jù),而是要在該方法中執(zhí)行某些操作
哪個(gè)更好:這很難說(shuō)。正如前面的解釋,它應(yīng)該取決于你的需要
你應(yīng)該如何返回:參考這個(gè):https : //docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html
繼續(xù)搜索更多/練習(xí)更多。然后就容易多了。

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
雖然您說(shuō)兩種方法的作用相同,但這不一定是真的,因?yàn)槟牡谝粋€(gè)方法計(jì)算結(jié)果并返回它,您的第二個(gè)方法計(jì)算結(jié)果,但將其分配給當(dāng)前對(duì)象中的狀態(tài)。
讓我們考慮以下類:
public class Dinner {
private Meal meal;
public Dinner(Meal meal) {
this.meal = meal;
}
public Meal getMeal(Meal meal) {
return meal;
}
public setMeal(Meal meal) {
this.meal = meal;
}
}
這里,setMeal修改了對(duì)象的內(nèi)部狀態(tài),但是沒(méi)有返回值。另一方面,getMeal返回對(duì)象的當(dāng)前狀態(tài),但不修改它。
想一想在你的用例中你到底需要什么:如果你想修改一個(gè)對(duì)象的內(nèi)部數(shù)據(jù),那么就用第二種方式。例如,如果您想返回計(jì)算結(jié)果或內(nèi)部狀態(tài),請(qǐng)將某些東西返回給調(diào)用者,以便他可以對(duì)其進(jìn)行操作。
最后,這只是一些想法,實(shí)現(xiàn)一個(gè)特定的問(wèn)題總是有很多不同的可能性,所以這個(gè)問(wèn)題沒(méi)有完美的答案。
添加回答
舉報(bào)