进阶day01-Object类的toString方法
This commit is contained in:
45
javaSE-day01/src/com/inmind/object01/Demo01.java
Normal file
45
javaSE-day01/src/com/inmind/object01/Demo01.java
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
package com.inmind.object01;
|
||||||
|
/*
|
||||||
|
Object:是所有类的父类,java中所有的类直接或者间接继承自Object
|
||||||
|
|
||||||
|
----------------------------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
2.Object类的toString方法
|
||||||
|
String toString() 返回对象的字符串表示形式。
|
||||||
|
|
||||||
|
Object类的toString的源码:
|
||||||
|
public String toString() {
|
||||||
|
return getClass().getName() + "@" + Integer.toHexString(hashCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
注意:在实际开发中,一个对象的地址值对于我们而言,没有太大的帮助,我们程序员希望直接看到
|
||||||
|
该对象的内容(属性),那怎么办呢???
|
||||||
|
|
||||||
|
现在父类的toString功能,不符合子类的需求,那么我们就可以在对应的子类中重写toString
|
||||||
|
|
||||||
|
总结:今后打印对象时,如果发现打印时输出了地址,但是我们想看属性内容,应该在该对象的类中重写toString,不用手动写,alt+insert自动生成即可
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class Demo01 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Person p = new Person();
|
||||||
|
Student s = new Student();
|
||||||
|
/*
|
||||||
|
打印对象和对象的toString方法有什么关系
|
||||||
|
|
||||||
|
打印对象,就是将对象的toString方法的内容,返回(com.inmind.object01.Person@41629346)
|
||||||
|
|
||||||
|
但是Object的toString的实现,不符合子类的需求,所以我们可以重写toString,实现只看内容不看地址
|
||||||
|
|
||||||
|
*/
|
||||||
|
p.name = "张三";
|
||||||
|
p.age = 20;
|
||||||
|
System.out.println(p);
|
||||||
|
s.name = "李四";
|
||||||
|
s.age = 21;
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
15
javaSE-day01/src/com/inmind/object01/Person.java
Normal file
15
javaSE-day01/src/com/inmind/object01/Person.java
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package com.inmind.object01;
|
||||||
|
|
||||||
|
public class Person {
|
||||||
|
String name;
|
||||||
|
int age;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Person{" +
|
||||||
|
"name='" + name + '\'' +
|
||||||
|
", age=" + age +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
12
javaSE-day01/src/com/inmind/object01/Student.java
Normal file
12
javaSE-day01/src/com/inmind/object01/Student.java
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package com.inmind.object01;
|
||||||
|
|
||||||
|
public class Student extends Person{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Student{" +
|
||||||
|
"name='" + name + '\'' +
|
||||||
|
", age=" + age +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user