0

わかりましたので、Java で作業している単純な配列を取得しました。問題は、プログラムを実行すると、実際の値ではなくオブジェクトのアドレスが取得されることです。また、ループ/配列に問題があることもわかりました。家 3、5、および 7 が表示されるはずですが、下部には 3、4、および 5 が表示されています。以下のコードとコンソール出力を参照してください。前もって感謝します!

House[] houses = new House[3];

houses[0] = new House(3,4);
houses[1] = new House(5,7);
houses[2] = new House(7,2);

System.out.println("Number of bottles in house number 3 is: " + houses[0]);
System.out.println("Number of bottles in house number 5 is: " + houses[1]);
System.out.println("Number of bottles in house number 7 is: " + houses[2]);

for (int i = 0; i < houses.length; i++){
  System.out.println("Number of bottles in house " + (i + 3 ) + " is " + houses[i]);
}

コンソール出力:

家番号 3 のボトルの数: org.com1027.lab3.House@d16e5d6

ハウス番号 5 のボトル数: org.com1027.lab3.House@5a4b4b50

家番号 7 のボトルの数: org.com1027.lab3.House@53d9f80

ハウス 3 のボトル数は org.com1027.lab3.House@d16e5d6 です。

ハウス 4 のボトル数は org.com1027.lab3.House@5a4b4b50 です。

家 5 のボトルの数は org.com1027.lab3.House@53d9f80 です

4

5 に答える 5

0

あなたが望むのはtoString()、クラスでオーバーライドすることですHouse

class House {
    // ... your implementation, 
    // which I'm guessing it's something like this:
    private int number;
    private int bottles;

    public House(int number, int bottles) {
        this.number = number;
        this.bottles = bottles;
    }

    // here you say what you want as output if you print a House, e.g.:
    @Override 
    public String toString() {
        return String.valueOf(bottles);
    }
}
于 2013-10-24T19:11:39.257 に答える