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方法:@Overridepublic 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));}
}
```
