第九のインターフェイスとインターフェイスコールバックオペレーション---

タイトル:

それぞれのパターンを表す別の文字を入力するときに、コールバックインターフェースとその使用、単純な工場モードは、次に図は塔底体積で計算され、グラフィックオブジェクト・ファクトリ・クラスを使用することによって得られます。

第二に、コードとコメント:

1.スクエアカテゴリ:

// *四角辺長*シークの領域の長さの方法でインターフェイス、継承する正方形クラスを定義する@
 パッケージccut.lyqと、
 パブリック クラス実装の形{zhengfangxing
     ダブル;長
     ダブルエリア; 
    zhengfangxing(ダブル長さ){
         この = .LENGTH 長; 
    } 
    公共 ダブルのgetArea(){
         戻り面積*長さ= 長さ; 
    } 
}
 

2.三角形のような:

// *三角形の辺の長さA、B、C、及び三角構成方法及び書き換え方法の面積三角形クラスがインターフェイスを継承定義@
 パッケージccut.lyq、
 パブリック クラスが実装をsanjiaoxing形状{
     ダブルA、
     ダブルB。
     二重C; 
    
    sanjiaoxing(ダブル A、ダブル B、ダブルC){
         この II.A = A;
         この .B = B;
         この .C = C; 
    } 
    公共の 二重のgetArea(){
         ダブル Dは=(A + B + C) / 2 ;
         戻り Math.sqrt(D *(DA)*(DB)*(D-をc)参照)。
    } 
}

3.長方形のカテゴリ:

// *矩形クラスはポート接合を継承し、矩形の長さが定義されているチャン、クアン幅、矩形領域を*計算される定義@
 パッケージccut.lyqと、
 パブリック クラスは、実装に形{Juxing
     ダブル;クアン
     ダブルチャン; 
    Juxing(ダブルクアン、ダブルチャン){
         この .chang = チャン;
         この .kuan = クアン; 
    } 
    公共の 二重のgetArea(){
         リターンクアン* チャン; 
    } 
}

4.台形:

// *インタフェースを継承台形クラス定義@
 パッケージccut.lyqと、
 パブリック クラス Juxing 実装形{
     ダブル;上地
     ダブルxiadi;
     ダブルガオ; 
    
    Juxing(ダブル上地、ダブル xiadi、ダブルガオを){
         この .xiadi = xiadi ;
         この .shangdi = 上地;
         この .gao = ガオ; 
    } 
    公共 ダブルのgetArea(){
         リターン(+ xiadi上地)*ガオ/ 2 ; 
    }
}

5.ラウンドカテゴリ:

// *クラス継承円形定義されたインタフェース、丸いエッジ長r、及びラウンド構成および*領域を書き換える方法@
 パッケージccut.lyq;
 パブリック クラスサークル実装形{
     ダブルR< 
    最終ダブル PI = 3.14 ; 
    サークル(ダブルR&LT){
         この .R = R< 
    } 
    公共 ダブルのgetAreaは(){
         戻り * R&LT * PIを、R&LT 
    } 
}

6つの気筒のカテゴリ:

// *クラス定義シリンダ、*下、高精細シリンダ、及びパターン領域を変化させる方法定義@
 パッケージccut.lyqと、
 パブリック クラスコーン{ 
    形形状、
    ダブルハイ;
     公共コーン(形状形状、ダブルハイ) {
         この .shape = シェイプ;
         この .high = 高; 
    } 
    公共 ダブルgetVolume(){
         戻り)(shape.getAreaを* ハイ; 
    } 
    公共 ボイドsetShape(形状状){
         この .shapeは= シェイプ; 
    } 
}

7.ファクトリクラス:

// *作成するファクトリクラス、switch文とシリンダーの底のオブジェクト選択パターン形状が*空で、//
 パッケージccut.lyq;
 インポート java.utilのクラス*。;
 公開 クラスファクトリーの{ 
    形形状 = ヌル; 
    スキャナ入力 = 新しい新しいスキャナ(System.in);
     公共 Factoryの(ダブル高さ){ 
        コーンコーン = 新しい新しいコーン(この.getShape()、高さ)
        のSystem.out.println(cone.getVolume()); 
    } 
    公共形状getShape(){ 
        System.out.println( "ボトムパターンを選択してください:矩形:T R&LTと、正方形:S;丸:C;:;三角形、台形V");
         チャー A = input.next()のcharAt(0 )、
         スイッチ(A){
         ケース 'R&LT':のSystem.out.println( "シリンダ容積の底部に矩形:");シェイプ= 新しい新しい長方形(3,6); BREAK ;
         ケース 'S':のSystem.out.println( "シリンダ容積の底部に四角:");シェイプ= 新しい新しい正方形(5); BREAK ;
         ケース 'C':システム。 out.printlnを(「円筒容積の底:」);シェイプ= 新しい新しいサークル;(8)BREAK ;
         ケース:カラム容量の底部でのSystem.out.println(「三角形「V」 :「);形状= 新しい新しいトライアングル(その5、3); BREAK ;
         ケース 'T':システム。out.printlnを(「シリンダの容積として梯子の底:」);形状=新しい台形(3,5,7); 破ります; 
        } 
        戻り形状と、
    } 
}

8.グラフィックスクラス:

// *塔底のために使用されるインタフェースの形状を定義する@
 パッケージccut.lyq、
 パブリック インターフェイス形状{
     抽象 ダブルのgetArea(); 
}

9.主なカテゴリ:

// *主类* //
 パッケージccut.lyq。
パブリック クラステキスト{
     公共 静的 ボイドメイン(文字列[]引数){
         ダブル高さ= 6 
        工場出荷時 = 工場(高さ); 
    } 
}

第三の結果:

おすすめ

転載: www.cnblogs.com/lyqqqq/p/11669059.html