package com.gatsby.test; public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } /* * 直接打印对象的地址值没有意义,需要重写Object类中的toString方法 打印对象的属性(name,age) */ @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
package com.gatsby.test; import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class Demo01ToString { public static void main(String[] args) { // TODO Auto-generated method stub Person p = new Person("张三", 18); String s = p.toString(); System.out.println(s);// com.gatsby.test.Person@15db9742 | Person类 重写toString Person [name=张三, age=18] // 直接打印对象的名字,其实就是调用对象的toString p=p.toString(); System.out.println(p);// com.gatsby.test.Person@15db9742 | Person类 重写toString Person [name=张三, age=18] // 看一个类是否重写了toString,直接打印这个类的对象即可,如果没有重写toString方法那么打印的是对象的地址值 Random r = new Random(); System.out.println(r);// java.util.Random@6d06d69c 没有重写toString方法 Scanner sc = new Scanner(System.in); System.out.println(sc);// java.util.Scanner[delimiters=p{javaWhitespace}+.. 重写toString方法 ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); System.out.println(list);// [1, 2, 3] 重写toString方法 } }