java里的methods to string和methods equals是什么,举例说明
时间: 2024-03-03 22:51:43 浏览: 18
在Java中,每个类都有一个默认的`toString()`方法和`equals()`方法,如果不进行重写,那么它们将使用默认实现。
`toString()`方法是将对象转换为字符串的方法。默认实现返回一个包含类名和哈希码的字符串。如果要自定义`toString()`方法,可以在类中重写该方法,以返回你期望的字符串。
举个例子:
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public static void main(String[] args) {
Person person = new Person("张三", 20);
System.out.println(person); // 输出:Person{name='张三', age=20}
}
}
```
`equals()`方法用于比较两个对象是否相等。默认实现比较的是两个对象的引用是否相等。如果要自定义`equals()`方法,可以在类中重写该方法,以实现你期望的比较逻辑。
举个例子:
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Person person = (Person) obj;
return age == person.age &&
Objects.equals(name, person.name);
}
public static void main(String[] args) {
Person person1 = new Person("张三", 20);
Person person2 = new Person("张三", 20);
System.out.println(person1.equals(person2)); // 输出:true
}
}
```
在这个例子中,我们通过重写`equals()`方法,实现了比较两个`Person`对象的`name`和`age`属性是否相等。