Java_重写toString()

在Java中,可以使用对象的toString()方法或直接访问属性来打印内容。默认的toString()返回类名和哈希码。示例代码展示了不重写toString()时如何打印Person对象的属性,以及重写后如何以自定义格式显示对象内容。重写toString()能提供更直观的对象表示。
摘要由CSDN通过智能技术生成

在 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 对象没有显式赋值,因此其 nameisMale 属性将使用默认值(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() 方法,我们可以以更直观和有意义的方式打印出对象的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值