1

forループのクラスからいくつかのオブジェクトを作成したいと思います。しかし、私はそれをコーディングする方法がわかりません。私が書いたものは新しいオブジェクトを作成しますが、それは前のオブジェクトを上書きします。

package assginment1_version4;

import java.util.*;

public class Client {

public static void main (String[] args) {
    System.out.println ("this is a bill database");
    System.out.println ("add a user?(Y/N)");

    Scanner input = new Scanner(System.in);
    String answer = input.nextLine ();
    ArrayList ary = new ArrayList ();

    for (int i=1 ; i < 100; i++) {
        if (answer.equalsIgnoreCase("y")) {
            Bill bill1 = new Bill();
            System.out.println("user first name:");
            bill1.setFname (input.nextLine());
            System.out.println("user Last name:");
            bill1.setLname (input.nextLine());
            System.out.println ("add a user?(Y/N)");
            answer = input.nextLine ();
        } else if (answer.equalsIgnoreCase ("n")) {
            if (Bill.getBillCounter () == 0) {
                System.out.println ("the Database is empty");
                break;
            } else {
                System.out.println ("Number of Users:  "
                        + Bill.getBillCounter ());
                break;
            }
        } else {
            while (!answer.equalsIgnoreCase ("n")
                    && !answer.equalsIgnoreCase ("y")) {
                System.out.println ("add a user?(Y/N)");
                answer = input.nextLine ();
                }
            }
        }
    }
}

このコードを完成させるのを手伝ってください。

4

3 に答える 3

7

Billループごとに新しいものを作成し、どこにも保存しないため、それらをオーバーライドしています。それらをあなたのに追加したいと思いますArrayList

まず、タイプを に追加する必要がありますArrayList

ArrayList<Bill> ary = new ArrayList<Bill>();

次に、新しい を追加するかどうかについてユーザーから入力を得る前にBill、現在のものをこのリストに追加する必要があります。

...
System.out.println("user Last name:");
bill1.setLname(input.nextLine());
ary.add(bill1);
...
于 2012-05-10T22:11:35.047 に答える
1

を使用していないため、ループの最後にオブジェクトArrayListを追加する必要があります。Bill'sfor

ary.add(bill1);

ArrayList にタイプを追加します

ArrayList<Bill> ary = new ArrayList<Bill>();
于 2012-05-10T22:11:34.150 に答える