パッケージtuxing、 パブリック インターフェイス形状{ 抽象 ダブルのgetArea(); // インターフェイスを作成 }
パッケージtuxing。 パブリック クラス yuanxingは実装状{ // 圆形类 最終 ダブル P = 3.14 。 ダブルR; yuanxing(ダブルR){ この .R = R。 } 公共 ダブルGETAREA(){ リターンのR *のR *のP。 } } クラス zhengfangxingは実装状{ // 正方形类 ダブル。 zhengfangxing(ダブルA){ この.A = A。 } 公共 ダブルGETAREA(){ 戻り *のAと、 } } クラス changfangxingは実装状{ // 长方形类 ダブル。 ダブルB; (changfangxing ダブル、ダブルB){ この .A = 。 この .B = B; } 公共 ダブルGETAREA(){ 戻り *のBと、 } } クラス tixing実装形状{ // 梯形类 ダブル。 ダブルB; ダブルH; tixing(ダブル、ダブル B、ダブルH){ この .A = 。 この .B = B; この .H = H; } 公共 ダブルGETAREA(){ リターン(A + B)* H / 2 。 } } クラス sanjiaoxingは実装状{ // 三角形类 ダブル。 ダブルB; ダブルC; sanjiaoxing(ダブル、ダブル B、ダブルC){ この .A = 。 この .B = B; この .C = C; } 公共 ダブルGETAREA(){ 二重 Q =(A + B + C)/ 2 。 戻り Math.sqrt( - A)*(Q - B)*(Q - Q×(QをC))。 } }
パッケージtuxing; インポート java.utilのクラス*。; パブリック クラス yunxing { // メインメソッド パブリック 静的な 無効メイン(文字列[] args)を{ System.out.printlnはは(「高い柱を入力してください。」); スキャナリーダー = 新しい新スキャナ(System.in); ダブルH; H = ; reader.nextDouble() のための(INT J = 0; J <5; J ++){ // 参照ソール方法。出力ボリューム。 System.out.println(「あるものパターンで塔底選択してください:」Y「は円形で、」Z「正方形、」t「は台形であり、」J「の矩形」S「三角形」); GC =新しいGC(); zhuti T = 新しいzhuti(H、a.getShape())。 t.setShape(a.shape)。 System.out.println(t.getvolum())。 } } }
パッケージtuxing; インポートjava.util.Scanner; パブリック クラス GC { // ファクトリクラス 形形状= NULL ; スキャナリーダー = 新しい新しいスキャナ(System.in); 公共形状getShape(){ チャー Z = reader.next()のcharAt。 (0 )、 スイッチ(Z){ ケース 'Y'のSystem.out.printlnは( "底円筒ボリュームである:");シェイプ= 新しい新しい Yuanxing;(6)BREAK ; ケース 'Z': System.out.println(「カラムの底部容積に四角:」);シェイプ= 新しい新しい zhengfangxing;(5)BREAK; ケース 'T'のSystem.out.println( "ボトムシリンダ容積に台形である:");シェイプ= 新しい新しい tixing(3,4、5); BREAK ; ケース 'J'のSystem.out.println (「長方形の底部にシリンダの体積である:」);シェイプ= 新しい新しい changfangxing(2,3); BREAK ; ケース「S」:のSystem.out.println(「三角形カラム底体積は:」 );シェイプ= 新しい新しい sanjiaoxing(3,4、5); BREAK ; } 戻り形; } }
パッケージtuxing; パブリック クラス zhuti { // カートリッジタイプ ダブルH、 形状A、 zhuti(ダブル H、形A){ // コンストラクタ この .H = H; この II.A = A; } 公共 ダブル getvolum(){ // ボリューム法は計算 戻りのH *の(a.getareaを); } 公共 ボイド setShape(形状A){ // のソール方法 この II.A = A; } }