慕移動(dòng)2184654
2018-05-22 05:56:15
import java.util.*;public class ee {public static void main(String []agrs) { ? Scanner sc=new Scanner(System.in); ? System.out.println("告訴我你的寬?"); ? double wa=sc.nextDouble(); ? System.out.println("告訴我你的長(zhǎng)?"); ? double da=sc.nextDouble(); ? System.out.println("告訴我你的高?"); ? double ha=sc.nextDouble(); ? parallelepiped wm=new parallelepiped(); ? wm.setwidth(wa); ? wm.setdepth(da); ? wm.setheight(ha); ? System.out.println("面積="+wm.getsurface()+"體積="+wm.getvolume()+"周長(zhǎng)="+wm.getlength());}}class parallelepiped{ private double width,depth,height; public static void setwidth(double wa) { double width=wa; } public double width() { return width; } public static void setdepth(double da) { double depth=da; } public double getdepth() { return depth; } public static void setheight(double ha) { double height=ha; } public double getheight() { return height; } public double getsurface() { return width*depth; } public double getvolume() { return width*depth*height; } public double getlength() { return (width+depth)*2; } public String tostring() { return "面積是="+getsurface()+"體積是="+getvolume()+"周長(zhǎng)是="+getlength(); } ?}為什么我輸入長(zhǎng),寬,高的數(shù)值后,最后計(jì)算結(jié)果都是0.0?比如用戶回答寬是2,長(zhǎng)2,高3,那么面積不可能算出來(lái)是0.0的啊
3 回答

酒木君
TA貢獻(xiàn)23條經(jīng)驗(yàn) 獲得超7個(gè)贊
有這樣幾個(gè)問(wèn)題,
get\set方法不應(yīng)該是static修飾的,你需要知道靜態(tài)方法是優(yōu)先于成員方法和成員變量加載的,這樣的寫(xiě)法很容易出現(xiàn)問(wèn)題.
set方法中 double width = wa; 這句話的意思是你將main函數(shù)中手動(dòng)傳入的參數(shù)賦值給了一個(gè)新聲明的變量,這個(gè)變量是局部變量,和你上面定義的私有成員變量是沒(méi)有一毛錢關(guān)系的,正確的寫(xiě)法應(yīng)該是去掉static方法修飾詞,將方法體中內(nèi)容改為this.width = wa;
toString中的方法既然已經(jīng)寫(xiě)好了打印對(duì)象信息的格式,在測(cè)試中直接調(diào)用就可以.
注意代碼規(guī)范和變量命名方式,盡量避免出現(xiàn)無(wú)意義或存在歧義的變量名出現(xiàn),這是一個(gè)合格程序員的基本要素.
添加回答
舉報(bào)
0/150
提交
取消