DVDと主演俳優のオブジェクトを2つの異なるクラスから表示できる小さなアプリケーションで作業していますが、次の出力が得られます。
person.Person@10ed7f5c
誰かが私が間違っていることについて何か洞察を提供できますか?
DVDクラス
public class DVD {
private String title;
private Person leadActor;
private int noOfStars;
public DVD (String a,Person person, int b) {
title = a;
leadActor = person;
noOfStars = b;
}
public String getTitle(){
return title;
}
public void setTitle(String title){
this.title = title;
}
public Person getLeadActor(){
return leadActor;
}
public void setLeadActor(Person leadActor){
this.leadActor = leadActor;
}
public int getNoOfStars(){
return noOfStars;
}
public void setNoOfStarts(int noOfStars){
this.noOfStars = noOfStars;
}
@Override
public String toString() {
String s = "Title " + title + "/r" + "Actor:" + leadActor + "/r" + noOfStars;
return s;
}
}
人のクラス
public class Person {
private String firstName;
private String lastName;
public Person (String a, String b){
firstName = a;
lastName = b;
}
public String getfirstName(){
return firstName;
}
public void setfirstName(String firstName){
this.firstName = firstName;
}
public String getlastName(){
return lastName;
}
public void setlastName(String lastName){
this.lastName = lastName;
}
}
そして、オブジェクトを作成してtoStringを呼び出す私のクラス
public class DvdTest {
private DVD d1;
public static void main (String [] args){
Person p2 = new Person ("Leonardo", "Decaprio");
DVD d1 = new DVD ("Inception",p2,4);
System.out.println (p2.toString());
}
}
DVD
クラスと同様に、クラスのtoString()
メソッドもオーバーライドする必要がありますPerson
。現在、のデフォルト実装から返された値を出力していますtoString()
。これは次のようなものです。
getClass().getName() + '@' + Integer.toHexString(hashCode())
これは、使用するIDEで生成された実装のサンプルです。
@Override
public String toString() {
return "Person [firstName=" + firstName + ", lastName=" + lastName + "]";
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加