1,Object 类的 特点:
- Object是所有类的父类(祖宗),所有类都直接或间接的继承了Object类。
- 一个类如果没有继承的父类,那将自动继承Object类;
Object类的方法是一切子类都可以直接使用的,要学习Object类的一些方法。
2,Object 类的 常用方法:(用于操作类对象)
A,toString():public String toString()
返回对象的字符串表示形式。建议所有子类重写该方法,自动生成
可用于,打印对象的属性内容;(自己创建的类需要重写)但在java自带的类中都重写过,则不需要,如:String。
所以,要输出自己写的类就要重写toString()方法;//Person类
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.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;
}
//重写 toSting方法:
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
//主类
public class Demo01 {
public static void main(String[] args) {
Person person = new Person("dad",19);
//在这里就能用toString输出变量啦;
System.out.println(person.toString());
}
}
B,equals()方法:public boolean equals(Object obj)
作用:比较对象内容是否相等(需要被子类重写)或者根据场景编写需要的实际逻辑进行比较。默认比较地址,重写可以比较内容,自动生成(一键生成:Generater -> equals() and HashCode() )
因为,object类里面的equals方法里面默认是 == 比较(比较地址);
注意:因为参数Object是父类,所以要将object的对象强转为子类对象才能用子类的属性内容。 ```java //Person类: public class Person { private String name; private int age;public Person() { }
public Person(String name, int age) { this.name = name; this.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; }
//重写equals方法 @Override public boolean equals(Object o) { if (this == o) {
return true;
} //判断父类Object的内容是否为空,且是否是两个类的内容,如是,则false; if (o == null || getClass() != o.getClass()) {
return false;
} //将 Object 类的对象 o,强制转成子类的对象 person;便于使用子类的属性内容 Person person = (Person) o;
if (age != person.age) {
return false;
} return name != null ? name.equals(person.name) : person.name == null; }
} //主类: public class Demo01 { public static void main(String[] args) { Person person1 = new Person(“dad”,19); Person person2 = new Person(“dad”,19);
//去比较Person类的两对象是否相等;
System.out.println(person1.equals(person2));
}
}
```