Java之重写Object类的toString方法
Grade类
public class Grade {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Grade(String name) {
super();
this.name = name;
}
public Grade() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return name;
}
Stu类
import java.util.Scanner;
public class Stu {
String name;
Grade grade;
Stu[]friends;
public Stu() {
super();
// TODO Auto-generated constructor stub
}
public Stu(String name) {
super();
this.name = name;
}
public Stu(String name, Grade grade) {
super();
this.name = name;
this.grade = grade;
Scanner in = new Scanner(System.in);
System.out.println("输入"+name+"的朋友数量:");
int num = in.nextInt();
friends = new Stu[num];
//初始化该学生的朋友
for(int i = 0;i<num;i++){
System.out.println("输入"+name+"第"+(i+1)+"朋友姓名:");
friends[i]=new Stu(in.next());
friends[i].grade = grade;
}
}
//查看学生的朋友信息
public void show(){
System.out.println(name+"的"+friends.length+"个朋友信息如下:");
for(Stu s:friends){
System.out.println(s);
}
}
//重写ToString类
@Override
public String toString() {
return "name=" + name + ", grade=" + grade;
}
Test类
public class Test {
public static void main(String[] args) {
Grade g = new Grade("java开发班");
Stu s = new Stu("小明",g);
s.show();
}
}
关于ToString方法:
System.out.println(); 语句输出是对象的时候,会默认调用对象的toString方法;
Object中ToString方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
而Object类的toString方法默认返回的是对象的完整类名+地址,一般情况下,没有较大的实际意义,所以我们一般会重写toString方法。