在 Java 中,要打印对象的内容可以使用对象的 toString()
方法或者直接访问对象的属性。默认情况下,如果没有显式重写 toString()
方法,将使用对象的默认 toString()
方法,该方法会返回对象的类名和哈希码。
在给定的示例代码中,Person
类没有显式重写 toString()
方法,因此我们可以直接访问对象的属性来打印出对象的内容。
下面是不重写toString
的打印对象内容的示例代码:
class Person {
String name;
int age;
boolean isMale;
}
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person();
p1.name = "赵同学";
p1.age = 20;
p1.isMale = true;
Person p2 = new Person();
p2.age = 10;
Person p3 = p1;
p3.name = "郭同学";
System.out.println("p1: name=" + p1.name + ", age=" + p1.age + ", isMale=" + p1.isMale);
System.out.println("p2: name=" + p2.name + ", age=" + p2.age + ", isMale=" + p2.isMale);
System.out.println("p3: name=" + p3.name + ", age=" + p3.age + ", isMale=" + p3.isMale);
}
}
运行上述代码,将打印出每个对象的属性值:
p1: name=郭同学, age=20, isMale=true
p2: name=null, age=10, isMale=false
p3: name=郭同学, age=20, isMale=true
注意,由于 p2
对象没有显式赋值,因此其 name
和 isMale
属性将使用默认值(null 和 false)。而 p3
对象与 p1
对象引用同一个内存地址,因此修改 p3.name
时,p1.name
也会被修改。
如果你希望以更自定义的方式打印对象的内容,你可以在 Person
类中重写 toString()
方法。重写 toString()
方法允许你定义自己的字符串表示形式,用于表示对象的内容。
以下是在 Person
类中重写 toString()
方法的示例代码:
class Person {
String name;
int age;
boolean isMale;
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + ", isMale=" + isMale + "}";
}
}
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person();
p1.name = "赵同学";
p1.age = 20;
p1.isMale = true;
System.out.println(p1.toString()); // 或者直接使用 System.out.println(p1);
// ...
}
}
在上述代码中,我们在 Person
类中重写了 toString()
方法,将对象的属性以自定义的形式拼接成字符串返回。
当我们调用 System.out.println(p1.toString())
或者直接使用 System.out.println(p1)
时,将打印出对象的内容:
Person{name='赵同学', age=20, isMale=true}
通过重写 toString()
方法,我们可以以更直观和有意义的方式打印出对象的内容。