From 890ad81fada4ad31c321c2532229a4fbb39b0c4f Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 30 May 2026 15:16:52 +0800 Subject: [PATCH] =?UTF-8?q?javaSE-day01-Object=E7=B1=BB=E7=9A=84toString?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/inmind/object01/Demo02.java | 37 +++++++++++++++++++ .../src/com/inmind/object01/Person.java | 10 +++++ 2 files changed, 47 insertions(+) create mode 100644 javaSE-day01/src/com/inmind/object01/Demo02.java diff --git a/javaSE-day01/src/com/inmind/object01/Demo02.java b/javaSE-day01/src/com/inmind/object01/Demo02.java new file mode 100644 index 0000000..c2785d7 --- /dev/null +++ b/javaSE-day01/src/com/inmind/object01/Demo02.java @@ -0,0 +1,37 @@ +package com.inmind.object01; + +import java.util.ArrayList; + +/* +Object类的toString方法 + String toString() 返回对象的字符串表示形式。 + +Object类的toString的源码: +public String toString() { + return getClass().getName() + "@" + Integer.toHexString(hashCode()); + } + +注意:在实际开发中,一个对象的地址值对于我们而言,没有太大的帮助,我们程序员希望直接看到 + 该对象的内容(属性),那怎么办呢??? + +现在父类Object类的toString功能,不符合子类Person的需求,那么我们就可以在对应的子类中重写toString + +总结:今后打印对象时,如果发现打印时输出了地址,但是我们想看属性内容,应该在该对象的类中重写toString, + 不用手动写alt+insert自动生成即可 + */ +public class Demo02 { + public static void main(String[] args) { + Person p = new Person(); + p.age = 20; + p.name = "张三"; + System.out.println(p);//com.inmind.object01.Person@3b07d329,此处调用的是Object的toString方法 + + ArrayList lists = new ArrayList<>(); + lists.add(1); + lists.add(2); + lists.add(3); + //为何现在打印对象内容变了??因为println(Object):底层调用的是该对象的toString方法并返回,但是ArrayList重写了父类的toString方法 + System.out.println(lists);//[1, 2, 3] + + } +} diff --git a/javaSE-day01/src/com/inmind/object01/Person.java b/javaSE-day01/src/com/inmind/object01/Person.java index f8db2f6..cecc82c 100644 --- a/javaSE-day01/src/com/inmind/object01/Person.java +++ b/javaSE-day01/src/com/inmind/object01/Person.java @@ -1,4 +1,14 @@ package com.inmind.object01; public class Person {//直接继承自Object + String name; + int age; + + @Override + public String toString() { + return "Person{" + + "age=" + age + + ", name='" + name + '\'' + + '}'; + } }