Object 类

在Java中所有类都直接或间接继承了java.lang.Object类。Object类是比较特殊的类,它是所有类的父类,是Java类层中最高的层类。当创建一个类时,总是在继承,除非某个某个类已经指定要从其他类继承,否则它就是从java.lang.Object类继承而来的,可见Java中每个类都源于java.lang.Object类,如String、Interger等类都是继承于Object类;除此之外自定义的类也都继承于Object类。由于所有类都是Object子类,所以在定义类时,省略了extends Object关键字。

class Anything{ } 等价于class extends Object{}

在Object类中主要包括clone()、finalize()、equals()、toString()等方法,其中常用的两个方法为equals()何toString()方法。由于所有类都是Object类的子类,所以任何类都可以重写Object类中的方法。

Object类中的getClass()、notify()、notifyAll()、wait()等方法不能被重写,因为这些方法被定义为final类型。

1.getClass()方法

getClass()方法是Object类定义的方法,它会返回对象执行时的Calss实例,然后使用此实例调用getName()方法可以取得类的名称

语法:

getClass().getName();

2.toString()方法

toString()方法的功能是将一个对象返回为字符串形式,它会返回一个String实例。在实际的应用中通常重写toStrinf()方法,为对象提供一个特定的输出模式。当这个类转换为字符串或与字符串连接时,将自动调用重写的toString()方法。

package javademo;

public class ObjectInstence {
	public String toString(){//重写toString()方法		
		return "在"+getClass().getName()+"类中重写toString()方法";
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(new ObjectInstence());//打印本类对象
	}

}
在本实例中重写父类Object的toString()方法,在子类的toString()方法中使用Object类中的getClass()方法获取当前运行的类名,定义一段输出字符串,当用户打印Objectinstence类对象时,将自动调用toString()方法。

3.equals()方法
“==” 比较的是两个对象的引用是否相等,而equals方法比较的是两个对象的实际内容。

package javademo;

class V{//定义类
	
}
public class OverWriteEquals {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s1 = "123";
		String s2 = "123";
		System.out.println(s1.equals(s2));//使用equals()方法调用
		V v1 = new V();
		V v2 = new V();
		System.out.println(v1.equals(v2));//使用equals()方法比较v1与v2对象
	}
}

在本实例的结果中可以看出,在自定义的类中使用equals()方法进行比较时,将返回false,因为equals()方法的默认实现时使用“==”运算符比较两个对象的引用地址,而不是比较对象的内容,所以要想真正做到比较两个对象的内容,需要在自定义类中重写equals()方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值