我正在練習如何編寫類並創建對象之間的「is」關係。在下面的代碼中,第一個類「Person」定義了一個Person,然後在第二個類「MarryDemo」中,我看到了是否有人結婚,配偶是誰,他們的地址等。他們甚至很快就離婚了。該代碼基於Jan Skansholm 從開始的Java的示例。實例方法返回一個十六進制而不是一個字符串
的問題是,我預計在MarryDemo的主要方法的結果是「克里斯 - 亨弗里斯」,「43新澤西州噴氣機一條街」,「空」,但不是配偶的名字我[email protected]
,與配偶的地址和離婚後的配偶仍然如我預期的那樣。
[email protected]
是什麼意思?那是由名字「Kris Humphries」引用的對象的位置嗎?爲什麼[email protected]
出現而不是名稱?
//defines a person
public class Person {
//instance variables
private String name, address;
private Person spouse;
//constructor
public Person(string n) {
name = n;
}
//instance methods
public String getName() {
return name;
}
public void marry(Person p) {
spouse = p;
p.spouse = this;
}
public Person isMarriedTo() {
return spouse;
}
... //more methods for returning address, divorcing, etc.
}
//
public class MarryDemo {
public static void main (String[] arg) {
String name1 = "Kim Kardashian";
String name2 = "Kris Humphries";
Person p1 = new Person(name1);
Person p2 = new Person(name2);
p1.marry(p2);
System.out.println(p1.marriedTo());
p2.setAddress("43 New Jersey Jets Drive");
System.out.println(p1.marriedTo().getAddress());
p1.divorce();
System.out.println(p1.marriedTo());
}
}
您的System.out.println(p1.marriedTo());你試圖打印一個對象,它應該是 System.out.println(p1.marriedTo()。getName());我猜, 。 – simaremare 2012-03-07 11:39:32
在我的代碼片段的上下文中,最好是實現/覆蓋toString()方法還是隻寫System.out.println(p1.marriedTo()。getName())? – milou 2012-03-07 12:07:53