admin管理员组文章数量:1567012
10.6 概述
Object:Java语言中上帝,所有类的父类,其中定义了所有对象都具备的功能。
10.7 equals方法
public boolean equals(Object obj)
指示一些其他对象是否等于此。
class Person extends Object{
}
public class Test {
public static void main(String[] args){
Person p1 = new Person();
Person p2 = new Person();
System.out.println(p1.equals(p2));//false
System.out.println(p1==p2);//false
}
}
定义一个方法,判断两个Person对象是否是同一个。
判断依据是根据年龄。如果年龄相同,视为同一个人。
不用再自定义方法,判断对象是否相同,因为Object父类中,已经定义了这样的方法。
直接使用就可以了。但是判断的内容是根据Person的特点定义的。
需要保留父类的功能声明,定义子类特有内容。使用覆盖。
class Person extends Object{
private int age;
public boolean equals(Object obj){
//提高一点效率,如果两个引用指向的同一个对象,不用再转换比较了,直接判断地址就可以了
if(this==obj)
return true;
//obj.age是错误的,因为object中没有age,
//想要使用子类的特有的属性或者方法,必须进行向下转型,需要进行类型判断
if(!(obj instanceof Person))
return false;
Person p = (Person)obj;
return this.age == p.age;
}
}
public class Test {
public static void main(String[] args){
Person p1 = new Person();
Person p2 = new Person();
System.out.println(p1.equals(p2));//比较年龄,输出true
System.out.println(p1==p2);//比较地址,输出false
}
}
例子:
定义一个方法,判断两个Person对象是否是同一个。
判断依据是根据年龄和姓名。如果年龄相同并且姓名也相同,视为同一个人。
class Person extends Object{
private int age;
private String name;
public Person(int age, String name){
this.age = age;
this.name = name;
}
public boolean equals(Object obj){
//提高一点效率,如果两个引用指向的同一个对象,不用再转换比较了,直接判断地址就可以了
if(this==obj)
return true;
//obj.age是错误的,因为object中没有age,
//想要使用子类的特有的属性或者方法,必须进行向下转型,需要进行类型判断
if(!(obj instanceof Person))
return false;
Person p = (Person)obj;
// 字符串判断不要用== , 字符串本身是一个对象,使用equals判断
return (this.age == p.age) && (this.name.equals(p.name));
}
}
public class Test {
public static void main(String[] args){
Person p1 = new Person(19,"huanhuan");
Person p2 = new Person(19,"huanhuan");
System.out.println(p1.equals(p2));//比较内容,输出true
System.out.println(p1==p2);//比较地址,输出false
}
}
10.8 toString方法
建立Person对象特有的字符串表现形式。只要覆盖toString方法即可。
class Person extends Object{
private int age;
private String name;
public Person(int age, String name){
this.age = age;
this.name = name;
}
public String toString(){
return "Person[name = "+this.name+",age = "+this.age+"]";
}
}
public class Test {
public static void main(String[] args){
Person p1 = new Person(19,"huanhuan");
System.out.println(p1.toString()); //输出 Person[name = huanhuan,age = 19]
}
}
版权声明:本文标题:java-day10-Object类 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727138374a1099223.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论