diff --git a/s-day01/src/com/inmind/object01/Demo02.java b/s-day01/src/com/inmind/object01/Demo02.java new file mode 100644 index 0000000..25f9394 --- /dev/null +++ b/s-day01/src/com/inmind/object01/Demo02.java @@ -0,0 +1,27 @@ +package com.inmind.object01; +/* +Object类:所有类的父类,java中所有的类直接或者间接继承自Object + + String toString() 返回对象的字符串表示形式。 + + Object类的源码: + public String toString() { + return getClass().getName() + "@" + Integer.toHexString(hashCode()); + } + + 注意:在实际开发中,一个对象的地址值对于我们而言,没有太大的帮助,我们程序员希望直接看到对象的内容(属性),那怎么办?? +现在父类object的toString方法,不符合我们需求,我们就在自己类中重写toString方法, + */ +public class Demo02 { + public static void main(String[] args) { + //创建学生对象 + Student s = new Student("张三", 18); + System.out.println(s);//com.inmind.object01.Student@3b07d329 + //student直接或者间接继承自Object类,所以对象s,可以调用Object类中的toString方法 + String objStr = s.toString(); + System.out.println(objStr);//com.inmind.object01.Student@3b07d329 + + //从今天开始,我不想要看地址了!!!!我要看内容!!!! + //为何学生类的toString重写了,打印对象也变了??因为println(object),底层本身就是调用该对象的toString方法 + } +} diff --git a/s-day01/src/com/inmind/object01/Student.java b/s-day01/src/com/inmind/object01/Student.java index 3682aeb..704d052 100644 --- a/s-day01/src/com/inmind/object01/Student.java +++ b/s-day01/src/com/inmind/object01/Student.java @@ -1,4 +1,22 @@ package com.inmind.object01; //间接继承Object类 -public class Student extends Person{ +public class Student extends Object{ + String name; + int age; + public Student(){ + super(); + } + public Student(String name, int age){ + super(); + this.name = name; + this.age = age; + } + + @Override + public String toString() { + return "Student{" + + "name='" + name + '\'' + + ", age=" + age + + '}'; + } }