AP计算机自学笔记:Object类

Object类被称为普遍超类,所有类会自动继承Object。

Object里有很多方法,所有其他类都会继承。因为Object不是抽象类,其所有方法都有实现。

AP考试涉及的方法:toString和equals

如果直接调用默认toString方法,会输出该对象虚拟地址。要让toString有意义,必须在自己的方法里重载它。

示例:

public class OrderedPair {

	private double x;
	private double y;
	
	
	//constructor and other methods
	public OrderedPair (double x, double y) {
		this.x = x;
		this.y = y;
	}
	
	
	//return the OrderedPair in String form
	public String toString() {
		return "(" + x  + " , " + y + ")";
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		OrderedPair p = new OrderedPair(7, 10);
		System.out.println(p);
	}

}

在本例中,该类的toString方法覆盖了Object里的toString, 并定义其为输出(x , y)

注意:数组对象没有toString方法,因此想要输出数组唯一的方法就是遍历输出

equals方法
如果两个指针指代同一对象equals返回true,否则为false,例如

Date di = new Date("Jan", 14, 2001);
Date d2 = d1;
Date d3 = new Date("Jan", 14, 2001);

d1.equals(d2)会返回true,不过d1.equals(d3)会返回false,因为d1和d3指代不是同一对象。可以通过覆盖equals方法改变比较内容,不过AP考试中不会要求自己写代码覆盖equals

默认的equals方法实施和等号的作用一样,如Date的例子中(d1 == d2) 会返回true, (d1 == d3)会返回false。 不过尽量不要使用==比较对象。应该使用equals或者compareTo

HashCode是Object类里一个方法。hashCode返回的数值为该对象对应到哈希表中的地址。注意相同的对象hashCode一定相同,但是hashCode相同两对象可能不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值