4 回答

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
Java 類Double
包含一個(gè)靜態(tài)方法,可以執(zhí)行您要查找的操作。
Double.toString(doubleValue)
您可以通過(guò)幾種不同的方式解決您的問(wèn)題,具體取決于您希望GuitarFubar
類具有的功能:
public class GuitarMClass {
? ? public static void main(String[] args) {
? ? ? ? // OPTION 1
? ? ? ? GuitarFubar output2 = new GuitarFubar();
? ? ? ? output2.setGuitarLength(12.2);
? ? ? ? String mkShft2 = output2.getGuitarLengthAsString();
? ? ? ? System.out.println(mkShft2);
? ? ? ? // OPTION 2
? ? ? ? GuitarFubar bString = new GuitarFubar();
? ? ? ? bString.setGuitarLength(12.2);? //your example code never sets the value of guitarLength, which is why one of your outputs is '0.0'
? ? ? ? System.out.println(Double.toString(bString.getGuitarLength()));
? ? ? ? // OPTION 3
? ? ? ? GuitarFubar guitarFubar = new GuitarFubar(12.2); // actually use the guitar length when constructing a new instance
? ? ? ? System.out.println(Double.toString(guitarFubar.getGuitarLength()));
? ?}
? ?public class GuitarFubar {
? ? ? ? private double guitarLength;
? ? ? ? // make sure you have a no-args constructor if that's how you are going to instantiate your class
? ? ? ? public GuitarFubar(){
? ? ? ? }
? ? ? ? public GuitarFubar(double guitarLength){
? ? ? ? ? ? this.guitarLength = guitarLength;
? ? ? ? }
? ? ? ? // make sure you have a proper 'getter'
? ? ? ? public double getGuitarLength(){
? ? ? ? ? ? return this.guitarLength;
? ? ? ? }
? ? ? ? // make sure you have a proper 'setter'
? ? ? ? public void setGuitarLength(double guitarLength){
? ? ? ? ? ? this.guitarLength = guitarLength;
? ? ? ? }
? ? ? ? // alternative to sillyString method if you want this functionality within your GuitarFubar class?
? ? ? ? // (although not required since a caller of getGuitarLength() can handle String conversion)
? ? ? ? public String getGuitarLengthAsString() {
? ? ? ? ? ? return Double.toString(this.guitarLength);
? ? ? ? }
? ? }
}

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
這是你困惑的根源:
public double getGuitarLen(double guitarLength){
return guitarLength;
}
那不是吸氣劑。它也不是二傳手。這是一個(gè)分流器,它只是準(zhǔn)確地返回它所得到的值,而不將值存儲(chǔ)在任何地方。
GuitarFubar output2 = new GuitarFubar();
這不會(huì)編譯,因?yàn)槟愕臉?gòu)造函數(shù)需要一個(gè)參數(shù)。即使你給了它,getGuitarLen也不會(huì)歸還,因?yàn)樗匀皇且环N分流。如果你更改getGuitarLen為
public double getGuitarLen(){
return this.guitarLength;
}
它仍然不起作用,因?yàn)槟銖奈绰暶鬟^(guò)
double guitarLength;
作為GuitarFubar國(guó)家的一部分。
進(jìn)行這些更改,它應(yīng)該會(huì)起作用。
并不是說(shuō)你真的需要這樣做,因?yàn)楸磉_(dá)式:
"" + doubleToString;
將被轉(zhuǎn)換成字符串。如果你在方法內(nèi)部并不重要。doubleToString是否已聲明并賦予值確實(shí)很重要。任何方法、構(gòu)造函數(shù)或初始值設(shè)定項(xiàng)都可以實(shí)現(xiàn)此目的。

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
盡量保持簡(jiǎn)單:
我們有一個(gè)只有一個(gè)字段的類
public class GuitarFubar {
private double length;
// next code snippets go here!
}
設(shè)置(初始)長(zhǎng)度的兩個(gè)選項(xiàng):構(gòu)造函數(shù)和方法(setter):
public GuitarFubar(double length) {
this.length = length;
}
public void setLength(double length) {
this.length = length;
}
以及一種獲取長(zhǎng)度的方法:
public double getLength() {
return this.length;
}
最后是獲取字符串長(zhǎng)度的方法:
public String getLengthAsString() {
return Double.toString(this.length);
}
但問(wèn)題沒(méi)有解決 - 需要設(shè)置長(zhǎng)度,默認(rèn)值為零。在調(diào)用(主)方法時(shí)
GuitarFubar guitar = new GuitarFubar(12.2);
System.out.println(guitar.getLengthAsString());
或者,如果沒(méi)有實(shí)現(xiàn)構(gòu)造函數(shù),則使用 setter:
GuitarFubar guitar = new GuitarFubar();
guitar.setLength(12.2);
System.out.println(guitar.getLengthAsString());
如果我們希望長(zhǎng)度不可變,我們將其聲明為final(不得更改),在構(gòu)造函數(shù)中設(shè)置它并且不實(shí)現(xiàn)設(shè)置器:
public class GuitarFubar {
private final double length;
public GuitarFubar(double length) {
this.length = length;
}
public double getLength() {
return this.length;
}
public String getLengthAsString() {
return Double.toString(this.length);
}
}
必須像這樣創(chuàng)建new GuitarFubar(12.2);

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
改變你的方法
public String sillyString(){
String str0 = "" + guitarLength;
return str0;
}
到:
public String sillyString(double doubleToString){
return "" + doubleToString;
}
并從 main 中調(diào)用它,例如:
System.out.println(bString.sillyString(213.3d));
添加回答
舉報(bào)