javaの第九の仕事 - インターフェイスおよびインターフェイスのリコール

タイトル:異なる文字を入力するとき、インタフェースとコールバックへのインターフェース、単純な工場モードを使用して、次に図形が塔底体積で計算され、グラフィックオブジェクト・ファクトリ・クラスを使用して得られた対応するパターンを示します。

ソースコード

1、Shape.java

パッケージcn.edu.ccut.jia、

パブリック インターフェイス形状{       // インターフェースの形状定義
抽象 ダブルのgetAreaを(); 
}

2、Rectangle.java

パッケージcn.edu.ccut.jia;
 // 、矩形クラスを定義長く、幅の広い2つのメンバー変数を作成するには、求積法に定義された
パブリック クラスを長方形実装形{
      ダブル長さ、
      ダブル幅;
     公共矩形(ダブル長さ、ダブル幅){
         この .LENGTH = 長さ;
         この .width = 幅; 
    } 
公共 ダブルのgetArea(){ 
    
    戻り      長さ* 幅; 
    } 
}

3、Zheng.java

パッケージcn.edu.ccut.jia;
 // クラス正方形、長方形および継承クラス定義
パブリック クラス鄭が延びている長方形{ 
    鄭(ダブルサイド){
         スーパー(サイド、側); // スーパー親クラスのメソッドを呼び出す
    }
     公共 ダブルのgetArea (){ // 領域メソッドオーバーライド
        
    戻り     長さ* 長さ; 
    } 

}

4、Yuan.java

パッケージcn.edu.ccut.jia;
 // 円のクラスを定義し、メンバ変数rを作成し、定義された求積法
パブリック クラス実装形{
     ダブルR<
    ダブル PI = 3.14 ;
     公衆元(ダブルR&LT){
         この .R = R< 
    } 
    公共 ダブルのgetArea(){ 
        
        リターン      R&LT *のR&LT * PI; 
        } 
}

5、Tringle.java

パッケージcn.edu.ccut.jia;
 // 、三角形クラスを定義するX、Y、W 3つのメンバ変数を作成し、定義された求積法
パブリック クラス Tringle   実装はシェイプ{
      ダブル; W
      ダブルX、
      ダブルY;
     公共 Tringle(ダブル W、ダブル X、ダブルY){
         この .W = W;
         この .X = X;
         この .Y = Y; 
} 
公共 ダブルのgetArea(){
     ダブル Q =(W + X + Y)/ 2 ; 

    返す   数学。 SQRT(q個の*(QW)* (QX)*(Q-Y))。
} 
}

6、Tixing.java

パッケージcn.edu.ccut.jia;
 // 求積法定義三個のメンバ変数、B、Hを作成し、台形クラスを定義する
パブリック クラスを Tixing 実装をシェイプ{
      ダブルA、
      ダブルB、
      ダブルH;
     公共 Tixing(ダブルダブル B、ダブルH){
         この II.A = A;
         この .B = B;
         この .H = H; 
    } 
    公共 ダブルのgetArea(){
         リターン(A + B)* H / 2 ; 
    } 
}

7、Cone.java

パッケージcn.edu.ccut.jia;
 // カートリッジクラスを定義し、高いインタフェースオブジェクトメンバ変数を作成し、ボリューム定義方法計算する
パブリック クラスコーン{
     ダブル  高いと、
    シェイプ形状、
    公共コーン(形状形状、ダブルハイ){
         この .shape = シェイプ;
         この .high = 高; 
    } 
      ダブルgetv(){
         戻り   高* shape.getArea(); 
     } 
        
}

8、Foctory.java

パッケージcn.edu.ccut.jia;
 // ファクトリクラスの作成
インポート java.utilのクラスを*。;
 パブリック クラスFoctory { 
    スキャナリーダー = 新しい新しいスキャナ(System.in); 
    形状getShape(char型のD){ 
        形形状 = ヌル;
         スイッチ( D){
         ケース 'R&LT' 
            のSystem.out.println( "高角形の長さを入力し、幅及び柱" ); 
            シェイプ = 新しい新しい矩形(reader.nextDouble()、reader.nextDouble());
         BREAK ケース 'Z' 
            System.out.println(「四角柱の側面を入力してくださいハイ」); 
            形状 = 新新鄭(reader.nextDouble());
         BREAK ;
         ケース「Y」
            のSystem.out.println(「サークルを入力してくださいそして、高いシリンダ半径「); 
            シェイプ = 新しい新元(reader.nextDouble());
         BREAK ;
         ケース『S』
            のSystem.out.println(」 "三角形の柱の高及び長辺に入ります)。
            形状 = 新しい新しいTringle(reader.nextDouble()、reader.nextDouble()、reader.nextDouble());
         BREAK ケース 'T' 
            のSystem.out.println( "下部に下底を台形を入力してください、そして高いポストハイ" ); 
            形状 = 新新Tixing(reader.nextDouble()、reader.nextDouble()、reader.nextDouble( ));
         BREAK ; 
        } 
        戻り形; 
     } 
}

9、Test.java

パッケージcn.edu.ccut.jia;
 インポート cn.edu.ccut.jia * ;
 インポート java.utilのクラス*。;
 パブリック クラスのテスト{
     公共 静的 ボイドメイン(文字列[]引数){
         ながら真の){ 
            スキャナリーダー = 新しい新しいスキャナ(System.in); 
        のSystem.out.printlnは( "あなたの好みの形状を入力してください:矩形R、正方形Z、三角形S、ラウンドY、台形T" );
         CHAR D = reader.next()のcharAt。 (0 ); 
        Foctory F = 新しい新しいFoctory(); 
        コーンC = 新しい新コーン(f.getShape(D)、reader.nextDouble())。
        System.out.println(c.getV())。
        
    } 

} 
}

第二に、ショットを実行します

おすすめ

転載: www.cnblogs.com/jwwy/p/11612153.html