import java.io.*;
public class Bewertung {
int schwarze;
int weisse;
このクラスは、属性 schwarze および weisse を持つオブジェクトを構築します。デフォルトコンストラクタ:
public Bewertung() {
schwarze = 0;
weisse = 0;
}
コンストラクタ:
public Bewertung(int sw, int ws) {
schwarze = sw;
weisse = ws;
}
文字列へのメソッド。ここに間違いがあります。このメソッドを使用してオブジェクトを渡そうとすると、端末にクレイジーなものが表示されるからです。
public String toString() {
int x = this.schwarze;
int y = this.weisse;
char x2 = (char) x;
char y2 = (char) y;
String Beschreibung = x2 + "," + y2;
return Beschreibung;
}
このメソッドは、属性を比較して、2 つのオブジェクトが同じかどうかをチェックします。
public boolean equals(Bewertung o) {
if (this.schwarze == o.schwarze && this.weisse == o.weisse) {
return true;
}
else return false;
}
このメソッドは、ターミナルで指定した属性を持つ新しいオブジェクトを作成し、正常に動作します。
public static Bewertung readBewertung() throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println("Gib die Zahl fuer Schwarz ein.");
String zeile;
int wert=0;
zeile=br.readLine();
int eingabe1=(new Integer(zeile)).intValue();
System.out.println("Gib die Zahl fuer Weiss ein.");
zeile=br.readLine();
int eingabe2=(new Integer(zeile)).intValue();
Bewertung neueBewertung = new Bewertung(eingabe1, eingabe2);
return neueBewertung;
}
Main-Method: ここでは、readBewertung() メソッドを使用して 2 つの新しいオブジェクトを構築する 2 つのオブジェクトを構築し、それらを出力して他の処理を実行します。印刷以外は問題なく動作しています。
public static void main(String[] args) {
try
{
Bewertung Bewertung1 = MeineBewertung1.readBewertung();
System.out.println(Bewertung1.toString());
Bewertung Bewertung2 = MeineBewertung2.readBewertung();
System.out.println(Bewertung2.toString());
if (Bewertung1.equals(Bewertung2)) {
System.out.println("Die beiden Bewertungen sind identisch!");
}
}
catch ( IOException e)
{
}
}
}
問題: 意図したように文字列にキャストされたオブジェクトの代わりに、いくつかの正方形が表示されます。何が悪いのかわかりませんが、間違いは to.String() メソッドのどこかにあるはずです。