我的Object

Object – 所有的类的父类 (8中基本数据类型没有父类。引用类型有父类。)

—toString方法
—equals方法
—hashCode方法

toString方法:输出对象就调用toString方法,将对象的成员变量的数据值输出。
例子:

//自定义重写规则: 以实际需要的字符串内容作为参考。

public String toString1() {
//return super.toString(); // 调用父类的toString方法。
}

// 重写hashCode: – 保证equals结果相等的对象的hashCode值一致,equals不等的对象的hashCode值不一样。
// hashCode得到的是一个int类型的数据 。
例子:

public int hashCode() {
int resutl = sex*age +  ((name == null) ? 0 : name.hashCode());
return resutl;
}

equals方法:Object中的equals方法判断是两个对象的地址是否相等。

obj.equals(obj2) – 判断两个对象的内容是否相等。

例子:

public static void main(String[] args) {
		Point p1 = new Point();
		Point p2 = new Point();
		System.out.println(p1==p2); // false -- 两个对象的引用地址不一样。
		System.out.println(p1==p1); // true -- 自己和自己肯定相等
		p2 = p1;
		System.out.println(p1==p2); // true -- 指向同一个对象的地址
		
		Point p3 = new Point();
		// ** Point不重写equals方法,那么调用父类的equals方法。
		System.out.println("equals:" + p1.equals(p3)); // -- false  -- p1和p3地址不同。
		System.out.println("equals:" + p1.equals(p2)); // -- true -- p1和p2地址同
	}

重写equals方法:

// 两个Cell对象等的规则: x和y各自相等,说明是相等的格子

例子:

public boolean equals(Object obj) {
		// 1. 判断是否是自己: 是自己就直接true.
		if(this == obj) {
			return true;
		}
		// 2. 判断传入的比较对象是否为null:  直接false
		if(obj == null) {
			return false;
		}
		// 3. 判断传入的比较对象的类型是否为同种类型:  不是同种类型就false。 是同一种类型就做类型转换,然后比较x,y数据值是否相等。
		// -- instanceof , 做引用的实际类型的判断
		if(obj instanceof Cell) { // -- 判断obj是否为Cell类型, 如果是,则可以强转。
			Cell c = (Cell)obj;
			if(this.x == c .x && this.y  == c.y) {
				return true;
			}
		}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值