13.Object类()-其他
13.Object类()
:是java所有类的基类。
构造方法:可以直接实例化
Object();
1.toString();返回对象的字符串表示形式:让在控制台的打印的可以看懂
class Person {
String name;
int age;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
////等于下列字符串
getClass().getName() + '@' + Integer.toHexString(hashCode())
2.equals(Object obj) 指示一些其他对象是否等于此
public boolean equals(Object obj) {
return (this == obj);
}
//Object 类下面的方法比较的是两个对象的地址。不看内容
//String 类下面的equals比较的是内容,重写了Object的eqalus方法
package com.homework;
import java.util.Objects;
class Person {
private String name;
private int age;
//有参构造
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//重写equals方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}
//无论何时重写equals方法,通常需要重写`hashCode`方法,以便维护hashCode`方法的通用合同,该方法规定相等的对象必须具有相等的哈希码
@Override
public int hashCode() {
return Objects.hash(name, age);
}
//tostring
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
//getset
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;
}
}
public class Demo1 {
public static void main(String[] args) {
Person person1 = new Person("小白" ,18);
Person person2 = new Person("小白" ,18);
System.out.println(person1.equals(person2));//true
}
}
3.int hashCode(); 在2中得到了实现
————————
:是java所有类的基类。
构造方法:可以直接实例化
Object();
1.toString();返回对象的字符串表示形式:让在控制台的打印的可以看懂
class Person {
String name;
int age;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
////等于下列字符串
getClass().getName() + '@' + Integer.toHexString(hashCode())
2.equals(Object obj) 指示一些其他对象是否等于此
public boolean equals(Object obj) {
return (this == obj);
}
//Object 类下面的方法比较的是两个对象的地址。不看内容
//String 类下面的equals比较的是内容,重写了Object的eqalus方法
package com.homework;
import java.util.Objects;
class Person {
private String name;
private int age;
//有参构造
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//重写equals方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}
//无论何时重写equals方法,通常需要重写`hashCode`方法,以便维护hashCode`方法的通用合同,该方法规定相等的对象必须具有相等的哈希码
@Override
public int hashCode() {
return Objects.hash(name, age);
}
//tostring
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
//getset
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;
}
}
public class Demo1 {
public static void main(String[] args) {
Person person1 = new Person("小白" ,18);
Person person2 = new Person("小白" ,18);
System.out.println(person1.equals(person2));//true
}
}
3.int hashCode(); 在2中得到了实现