課后練習(xí),熱熱手
分了四個(gè)類class,用于保證內(nèi)部繼承屬性的Sharp,矩形(Rectangle),圓(Circle)和調(diào)試用(initial);
Sharp:
package?com.test2; public?abstract?class?Sharp?{ public?abstract?void?length(); public?abstract?void?aera(); }
沒什么說的就是個(gè)模板;
Circle:
package?com.test2; public?class?Circle?extends?Sharp?{ public?final?double?pi?=?3.1415926; public?double?r; public?void?getR(double?r){ this.r=r; } @Override public?void?length()?{ //?TODO?Auto-generated?method?stub double?length?=?2*pi*r; System.out.println("the?Circle's?length?is?"+length); } @Override public?void?aera()?{ //?TODO?Auto-generated?method?stub double?aera?=?pi*r*r; System.out.println("the?Circle's?aera?is?"+aera); } }
繼承Sharp,用getR將R分開;?
Rectangle:
package?com.test2; public?class?Rectangle?extends?Sharp?{ public?int?Long; public?int?wide; public?void?getLong(int?Long?,int?wide){ this.Long?=?Long; this.wide=?wide; } @Override public?void?length()?{ //?TODO?Auto-generated?method?stub int?length?=?2*(Long+wide); System.out.println("the?Rentangle's?length?is?"+length); } @Override public?void?aera()?{ //?TODO?Auto-generated?method?stub int?aera?=?Long*wide; System.out.println("the?Rentangle's?area?is?"+aera); } }
用?getLong(int,int)獲得長,寬;
initail:
package?com.test2; import?java.util.Scanner; public?class?Initail?{ public?static?void?main(String[]?args)?{ //?TODO?Auto-generated?method?stub System.out.println("enter?1?for?Rectangle?,0?for?Circle"); Scanner?scan?=?new?Scanner(System.in); int?i?=(int)scan.nextDouble(); switch(i){ case?0: System.out.println("please?enter?r?of?the?Circle:"); Circle?cir?=?new?Circle(); cir.getR(scan.nextDouble()); cir.length(); cir.aera(); break; case?1: Rectangle?rectan?=?new?Rectangle(); System.out.println("please?enter?the?long?and?wide?of?the?Rectangle:"); rectan.getLong((int)scan.nextDouble(),(int)scan.nextDouble()); rectan.length(); rectan.aera(); } } }
常規(guī)輸出,還可以把輸出再放到一個(gè)方法里面,避免寫兩條
rectan.length();
rectan.aera();
我懶就省了...
運(yùn)行結(jié)果:
2015-04-08
初學(xué)者表示樓主這段代碼很有用,非常感謝!
2015-04-16
謝謝樓主答案。
2015-03-10
可讀性好差。