継承 - 分散赤パケットの開発の簡単な例

以下のためのパッケージ変更cn.learn.chouxiang.practice03; 

パブリック クラスユーザー{
     プライベート文字列名; // 名前
    プライベート ダブルマネー; // バランス

    公共 ボイドショーは、(){ 
        System.out.printlnは(String.Formatのは(「私の名前は次のとおりです。% S、私は左:%を2F \ N-」,.。この .nameの、この.money)); 
    } 

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

    パブリックユーザー(文字列名、ダブル金){
         この .nameの= 名前;
         この .money = マネー; 
    } 

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

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

    公共 ダブルgetMoney(){
         戻りお金。
    } 

    公共 ボイド setMoney(二重お金){
         この .money = お金。
    } 
}
パッケージcn.learn.chouxiang.practice03; 

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

パブリック クラスマネージャーが拡張し、ユーザーを{
     パブリックマネージャ(){ 
    } 

    公共マネージャー(文字列名、ダブルマネーに){
         スーパー(名前、マネー);   // 親クラスの場合は、新しいメインアウト、サブクラス、および他の継承する独立したオープン
    } 

    公共のArrayList <ダブル>送る(INT totalMoney、INT COUNT){ 

        // 第一設定量に封筒を複数格納されています 
        ArrayListの<ダブル> = readlist 新しい新しいのArrayList <> ();

        // メイングループのバランスを初めて目
        ダブル lefMoney = スーパー .getMoney(は);   // メイングループは、前

        IF(totalMoney> lefMoney){ 
            System.out.printlnはは( "壊れた!" );
             戻りreadlistを; 
        } 
        // 控除
        {
             スーパー .setMoney(lefMoney- totalMoney);
             ダブル leftSum = totalMoney;
             のためint型 I = 0;私は数<;私は++ ){
                 ダブル AVG =(ダブル)leftSum /(新新ランダム.nextDouble()+ 2.4(3)); 
                leftSum - = AVG;
                 // 封筒コレクションに
                readList.add(AVG);
                 // 最後のプロセス赤色単一
                IF(COUNT-Iを== 1 
                    readList.add (leftSum); 
            } 
            のSystem.out.println( "赤" + readList + "全" + 。readList.stream()mapToDouble(ダブル::).SUM中のdoubleValue());
             戻りreadlist; 
        } 

    } 
}
パッケージcn.learn.chouxiang.practice03; 

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

公共の クラスのメンバー拡張ユーザー{
     パブリックメンバー(){ 
    } 

    パブリックメンバー(文字列名、ダブルマネー){
         スーパー(名前、お金を); 
    } 

    // 近いエンベロープが
    公共 ボイドが受け取る(のArrayList <ダブル> {)一覧
         // ランダムに配置された赤色のセットから
         // 取得した第1指標値赤
        int型のインデックス= 新しい新。)(ランダムnextInt(はlist.size() );
         //赤い封筒のインデックス値を削除し、バランスにお金を入れて
        ダブルマネー= list.remove(インデックス);
         スーパー .setMoney(マネー+ スーパー.getMoney()); 


    } 
}
パッケージcn.learn.chouxiang.practice03。

輸入はjava.util.ArrayList; 

パブリック クラスには{入力し
     、パブリック 静的 無効メイン(文字列[] args)を{ 
        マネージャqunzhu = 新しいマネージャー( "群主"、55.0を)。
        部材qunyuan1 = 会員( "群员A"、0.0 )。
        部材qunyuan2 = 会員( "群の员のB"、0.0 )。
        メンバーqunyuan3 = 会員( "群员C"、0.0 )。
        部材qunyuan4 = 会員( "群员D"、0.0 )。
        メンバーqunyuan5 = メンバー( "群员E"、0.0 ); 
        メンバーqunyuan6 = メンバー( "群员F"、0.0 ); 

        // 发红包 
        のArrayList <ダブル>リスト= qunzhu.send(30,6 ); 

        // 收红包
        qunyuan1.recieve(リスト); 
        qunyuan2.recieve(リスト); 
        qunyuan3.recieve(リスト); 
        qunyuan4.recieve(リスト); 
        qunyuan5.recieve(リスト); 
        qunyuan6.recieve(リスト); 

        qunzhu.show(); 
        qunyuan1.show(); 
        qunyuan2.show(); 
        qunyuan3.show(); 
        qunyuan4.show(); 
        qunyuan5.show();
        qunyuan6.show(); 

    } 
}

//概要:乱数生成精通フォーマットされた出力、のArrayListの使用

おすすめ

転載: www.cnblogs.com/huxiaobai/p/11456394.html