Javaの赤い封筒

機能のJava実装を使用して赤い封筒。

  構造:

    パッケージredPocket    

      User.java      

      Manager.java

      Member.java

      Demo.java

  アイデア:

    マネージャーとメンバークラスは、ユーザーを継承Managerクラスは、赤い封筒のメイングループの機能を実装して、メンバーのクラスは、グループのメンバーが赤い封筒機能を受け実装しています。デモテストコード。

  コード:

    

パッケージredPocket。

パブリック クラスユーザー{
     プライベート文字列名;
    プライベート フロートお金。

    パブリックユーザー(){ 
    } 

    パブリックユーザ(文字列名、フロートお金){
         この .nameの= 名前。
        この .money = お金。
    } 

    パブリック文字列のgetName(){
         戻り名。
    } 

    公共 ボイドのsetName(文字列名){
         この .nameの= 名前。
    } 

    公共 フロートgetMoney(){
         戻りお金。
    } 

    公共 ボイド setMoney(フロートお金){
         この .money = お金。
    } 

    @Override 
    パブリック文字列のtoString(){
         リターン "名:" + この .nameの+ ";" + "マネー:" + この .money + ";" 
    } 
}
User.java
パッケージredPocket。

輸入はjava.util.ArrayList;
輸入java.util.Randomの。

パブリック クラスマネージャは、拡張ユーザー{ 

    パブリックマネージャ(){ 
    } 

    公共マネージャー(文字列名、フロート金){
         スーパー(名前、お金を)。
    } 

    公共のArrayListは、<フロート>送信(フロート totalMoney、int型の数、ブール{isRandom)を
         場合(!hasEnoughMoney(totalMoney)){ 
            System.out.printlnは( "あなたは十分なお金を持っていません!" );
            戻り NULL ; 
        } 

        のArrayList <フロート> = redPockets 新しい新規のArrayList <> ();
         この .setMoney(この .getMoney() - totalMoney); 

        IF (isRandom){ 
            ランダムランダム = 新しい新しいランダム(); 
            のArrayList <フロート> PERCENTAGE = 新しい新 ArrayList <> ();
             // すべてのパーセンテージを得ることができる1.0〜0.0の間の比を格納する
            ためのint型 ; Iは数<I ++はI = 0 ){ 
                percentage.add(random.nextFloat())。
            } 
            //各比率の割合を算出し、次いで、パーセンテージの合計を計算
            フロート totalPercentage = SUM(百分率);
             // これは描かどのくらい各人計算totalMoney割合を乗じて
            のためのint型 I = 0; Iは数<; Iは++ ){ 
                redPockets .add(percentage.get(I) / * totalPercentage totalMoney); 
            } 
        } {
             フロートの平均= totalMoney / COUNT;
             のためのINT I ++は; Iは数<I = 0 ){ 
                redPockets.add(平均); 
            } 
        } 

        戻りredPockets; 
    }

    プライベート ブール hasEnoughMoney(フロートtotalMoneyを){
         場合この .getMoney()> = totalMoney){
             戻り 
        } 
        を返す 
    } 

    公共 フロート和(のArrayList <フロート> パーセンテージ){
         フロート totalPercentage = 0.0Fを以下のためにint型 ; I <percentage.size()は、i ++は、I = 0 ){ 
            totalPercentage + = percentage.get(I)と、
        } 
        戻りtotalPercentageと、
    }
}
Manager.java
パッケージredPocket; 

インポートjava.util.ArrayListのの、
 インポートjava.util.Randomの、

パブリック クラスメンバー延びユーザー{ 

    パブリックメンバー(){ 
    } 

    パブリックメンバー(文字列名、フロートマネー){
         スーパー(名前、マネー); 
    } 

    公共 ボイドザ受信を(のArrayList <フロート> redPockets){
         //は、リスト内のランダムな
        整数の指数= 新しい新しいランダム()nextInt(redPockets.size());.
         フロートマネー= ; redPockets.get(インデックス)
         //が汲み上げられますインデックスは除きます。
        redPockets.remove(インデックス)。
        System.out.println(この .getName()+ "抽到了" + お金)。
        この .setMoney(この .getMoney()+ お金)。
    } 
}
Member.java
パッケージredPocket。

輸入はjava.util.ArrayList; 

パブリック クラスデモ{
     公共 静的 ボイドメイン(文字列[]引数){ 
        マネージャM = マネージャー(「マネージャ」、1000.0F )。
        メンバM1 = メンバー( "メンバー1"、100.0F )。
        メンバM2 = メンバー( "Member2"、45.56F )。

        ArrayList <フロート> redPockets = m.send(888.88F、8、)。

        System.out.println(redPockets)。

        m1.receive(redPockets)。
        m2.receive(redPockets)。

        System.out.println(redPockets)。

        System.out.println(M)。
        System.out.println(M1)。
        System.out.println(M2)。
    } 
}
Demo.java

 

 

おすすめ

転載: www.cnblogs.com/noonjuan/p/11792522.html