Javaの第九のジョブ - インタフェースとコールバックインターフェース

A.タイトル

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

 

II。コードと注意事項

/ ** Shapeクラス、インターフェイスを作成、抽象クラスを定義* /

パッケージccut.cn。

インタフェース形{ 
    
     抽象 二重のgetArea()。

}

/ **長方形のタイプ、長さ、および作成する幅、施工方法、矩形領域を計算します* /

パッケージccut.cn。

パブリック クラス長方形は実装形{ 
    
    ダブル高さ;
    ダブル幅; 
    矩形(二重高さ、ダブル幅){
         この .height = 高;
        この .width = 幅; 
        
    } 
    公共の 二重のgetArea(){
         二重面積=高さ* 幅。
        リターンエリア。
    } 
    

}

 

/ **クラス広場、作成された正方形の一辺の長さは、コンストラクタ、および四角形の面積を決定します* /

 

パッケージccut.cn。

パブリック クラススクエアは実装形{ 

    
    ダブルサイドを。
    正方形(ダブルサイド){
         この .side = 側; 
    } 
    公共の 二重のgetArea(){
         戻り側*の側、
    } 

}

 

/ **円形のクラス、円形部材の可変半径を作成し、施工方法、及び円形の領域* /

 

パッケージccut.cn。

パブリック クラスサークル実装形{ 


    ダブル半径。
    円(二重半径){
         この .radius = 半径。
    } 
    公共の 二重のgetArea(){
         戻り 3.14 *半径*の半径と、
    } 

}

 

/ **三角形のクラスは、三角形の3辺のメンバ変数、三角形の面積の施工方法と要件を作成します* /

 

パッケージccut.cn。

パブリック クラストライアングルは実装形{ 

    
    
    ダブルダブルB;
    ダブルC; 
    三角形(ダブルダブル B、ダブルC){
         この .A = この .B = B;
        この .C = C; 
        
    } 
    公共の 二重のgetArea(){
         二重のS =(A + B + C)/ 2 ダブル S =(フロート)Math.sqrt(S×(SA)*(SB)*(S- C))。
        返すSを、
    } 

}

 

/ **台形型は、下にある基板との高いメンバ変数、台形の方法及び構造に必要な領域を作成します* /

 

パッケージccut.cn。

パブリック クラス台形は実装形{ 

    
    ダブルs_heightを。
    ダブルx_height;
    ダブル背の高いです; 
    台形(ダブル s_height、ダブル x_height、ダブルトール){
         この .s_height = s_height。
        この .x_height = x_height。
        この .tall = トール。
    } 
    公共の 二重のgetArea(){
         リターン(s_height + x_height)*身長/ 2 
    
    } 

}

 

/ **クラスカラム、高いシリンダメンバ変数を作成し、算出シリンダ容積コンストラクタ* /

 

パッケージccut.cn。

パブリック クラスコーン{
     ダブル長さ; 
    シェイプシェイプ。
    コーン(形状形状、二重長さ){
         この .shape = 形状;
        この .LENGTH = 長さ。
    } 
    ダブルgetVolume(){
         ダブル V = shape.getArea()* 長さ。
        リターンV; 
    } 
}

 

/ **ファクトリクラスは、ユーザーの形状は、/判断を行う必要があり、*に対応する形状の面積を返します。

パッケージccut.cn。
輸入 java.utilの。* ;
パブリック クラス工場{ 
    
    静的形状形状= NULL ;
    静的スキャナSE = 新しいスキャナ(System.in)。
    パブリック 静的状(チャーI){
         スイッチ(I){
         ケース 'C':のSystem.out.printlnは( "请输入圆的半径:" )。
                  二重 C = se.nextDouble()。
                  形状 = 新しいサークル(C);
                  破ります;
        場合'T':のSystem.out.println( "正方形の一辺を入力してください:" );
                   ダブル T = se.nextDouble(); 
                  形状 = 新新広場(T);
                   BREAK ;
         ケース 'R&LT':System.out.printlnは( "長方形の長さと幅を入力してください:" );
                   ダブル L = se.nextDouble();
                   ダブル K = se.nextDouble(); 
                  形状 = 新しい新しい長方形(L、K);
                   BREAK ;
         ケース 'S':のSystem.out .println(「三角形の三辺を入力してください:」);
                  ダブル =se.nextDouble();
                  ダブル B = se.nextDouble()。
                  ダブル D = se.nextDouble()。
                  形状 = 新しいトライアングル(B、D)。
                  破ります;
        ケース 'X'のSystem.out.printlnは( "请输入梯形的上底、下底和高:" );
                  ダブル S = se.nextDouble()。
                  二重 X = se.nextDouble()。
                  ダブル H = se.nextDouble()。
                  形状 = 新しい台形(S、X、H)。
                  破ります;
          } 
        
        戻り形状と、
    } 
    
    
}

 

/ *メインクラスは、ユーザが必要とシリンダの底部、コールファクトリクラスの所望の形状を入力し、*に対応するボリュームを決定/

 

パッケージccut.cn;
 インポート java.utilのクラス*。;
 パブリック クラスZhulei { 

    / ** 
     * @paramの引数
      * / 
    パブリック 静的な 無効メイン(文字列[] args)を{
         // TODO自動生成されたスタブメソッド 
        のSystem.out.println( "デフォルトのシリンダ10高い、底面積のパターンを入力" ;)
        のSystem.out.println( "円(C)、正方形(T)、矩形(R&LT)、(S)三角形、台形(X)" ) ; 
        スキャナーSE = 新しい新しいスキャナ(System.in);
         チャー(= I se.next)でのcharAt(0 ); 
        
        コーンコーン = 新しい新コーン(Factory.a(I)、10 )。
        System.out.println(cone.getVolume())。
        
        

    } 

}

 

III。業績

 

おすすめ

転載: www.cnblogs.com/19980712mj/p/11617186.html