API之Object类

            Object类

    Object类是Java语言中的根类,也就是所有类中的父类,它的所有方法子类都可以使用,所有类在创建的时候,最终找的父类就是Object类。找不到一个类的父类不是Object类。Object类的方法中,用的比较多的就equals方法和toString方法。

 方法:

1、equals方法:

            此方法用比较两个对象是否相同,其实就是用两个对象的内存地址在进行比较,返回值是布尔类型的。方法的参数是Object类型的,表示什么类型的都可以传进去,方法的内部使用的就是“==”比较运算符。

    所以假如创建两个同类型的对象,p1和p2.如果用:

  boolean b=p1.equals(p2);最后得出的结果是false。因为这两个对象在堆中的地址是不一样的。

   开发中如果要比价两个对象是否相同,经常会根据对象中的属性值进行比较,所以在开发中需要子类重写equals方法,使方法根据对象的属性值进行比较。

如下的代码:比较两个人的年龄是否相等。

Person类中的代码:

/*
 	描述人这个类,并定义功能根据年龄判断是否是同龄人
 	由于要根据指定类的属性进行比较,这时只要覆盖Object中的equals方法
 	在方法体中根据类的属性值进行比较
 */
public class Person {
	private String name;
	private int age ;
	
	public String String(){
		return name+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方法
	public boolean equals(Object obj){
		//判断是否跟自己比
		if(this==obj){
			return true;
		}
		//判断是否为空
		if(obj==null){
			return false;
		}
		//核心判断,如果obj是Person类型的,可以进行比较,比较年龄的时候要向下转型,
		if (obj instanceof Person) {
			Person p = (Person)obj;
			return this.age==p.age;						
		}else{
			return false;
		}
	}
}

    其中equals方法中进行是否为空和自身比价判断是为了提高运行的效率。

  主方法中的代码:

public static void main(String[] args) {
	Person p1=new Person("张一", 24);
	Person p2=new Person("张二", 20);
	boolean b=p1.equals(p2);
	System.out.println(b);
	String s=p1.String();
	System.out.println(s);
}
    最后的运行结果:因为两个人的年龄是不相等的。所以结果为false。

2、toString方法:

     toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

   由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

 Person类中:

    这个方法在主方法中直接调用即可。运行结果为对象的姓名和年龄。所以这个方法的好处也就是可以直接看到变量的值。





 
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值