Object——tostring
Object类的概述
每个类都可以将Object作为父类。所有类都可以直接或者间接的继承该类
//构造方法
public Object()
回想面向对象中,为什么说子类的构造方法默认访问的是父类的无参构造方法?
因为他们的顶级父类只有无参构造方法。
Student类
package com.itheima.myobjectdemo1;
public class Student {
private String name;
private int age;
//空参构造:
//alt + insert 构造快捷键 Constructor
//按两下tab + 一个回车
//第一个tab 取消默认选择的name属性
//第二下tab 使Select None 背景变蓝
//最后按回车 构造无参构造
public Student() {
}
//有参构造:
//alt + insert +Constructor
//按住shift不要松 + 下键
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//alt + insert + 选择 Getter and Setter + +按住shift不要松 + 下键 回车
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;
}
}
Demo1
public class Demo {
public static void main(String[] args) {
Student s = new Student("张安",23);
System.out.println(s);
}
}
打印结果
原因:
解决方法 tostring
tostring 方法
package com.itheima.myobjectdemo1;
public class Student {
private String name;
private int age;
//空参构造:
//alt + insert 构造快捷键 Constructor
//按两下tab + 一个回车
//第一个tab 取消默认选择的name属性
//第二下tab 使Select None 背景变蓝
//最后按回车 构造无参构造
public Student() {
}
//有参构造:
//alt + insert +Constructor
//按住shift不要松 + 下键
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//alt + insert + 选择 Getter and Setter + +按住shift不要松 + 下键 回车
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;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
结论
**1.Object类是所有类的直接或者间接父类
2.直接打印一个对象就是打印这个对象的tostring方法的返回值
3.Object类的tostring方法得到的就是对象的地址值
4.我们一般会对tostring方法进行重写 **