zoukankan      html  css  js  c++  java
  • Object类—复写equals方法,hashCode方法,toString方法

    Object:所有类的根类。
    Object是不断抽取而来,具备着所有对象都具备的共性内容。
    class Person extends Object {
    	private int age;
    
    	Person(int age) {
    		this.age = age;
    	}
    
    	/* 老方法:比较Person的年龄。是否是同龄人 */
    	// public boolean compare(Person p) { return this.age ==
    	// p.age; }
    
    	/* 新方法:一般都会覆盖此方法,根据对象的特有内容,建立判断对象是否相同的依据。(常用复写equals) */
    	public boolean equals(Object obj)// Object obj = p2;隐藏着向上转型
    	{
    		// 健壮性判断
    		if (!(obj instanceof Person)) {
    			throw new ClassCastException("类型错误");
    		}
    		Person p = (Person) obj;// 向下转型,否则无法调用Person的属性age
    		return this.age == p.age;
    	}
    
    	/* 复写hashcode() */
    	// public int hashCode() {
    	// return age;
    	// }
    
    	/* 复写toString() */
    	// public String toString() {
    	// return "Person:" + "age=" + age;
    	// }
    }
    
    class ObjectDemo {
    	public static void main(String[] args) {
    		Person p1 = new Person(60);
    		Person p2 = new Person(20);
    		// System.out.println(p1.equals(p2));
    
    		// System.out.println(p1);// 默认调用p1.toString
    		// System.out.println(Integer.toHexString(p1.hashCode()));
    
    		/* 是不是同一个类 */
    		// Class clazz1 = p1.getClass();
    		// Class clazz2 = p2.getClass();
    		// System.out.println(clazz1 == clazz2);
    		// System.out.println(clazz1.getName());// Person
    
    		// System.out.println(p1.toString());// Person@61de33
    		// System.out.println(p1.getClass().getName() + "$" +
    		// Integer.toHexString(p1.hashCode()));// Person$61de33
    
    		// System.out.println("==:" + (p1 == p2));
    		// System.out.println("equals:" + p1.equals(p2)); //
    		// equals()方法,比较的是地址值。对于非字符串变量,equals比较的是内存的首地址,这时候和==是一样的,即比较两边指向的是不是同一个对象。
    	}
    }
    

      

     
  • 相关阅读:
    Java 初始化
    tomcat 输入学习
    使用exundelete在Linux下恢复删除的文件
    java设计模式----解释器模式
    java设计模式----中介模式
    java设计模式----访问者模式
    java设计模式----状态模式
    关于前后端分离的一些事
    sublime text3
    java中的socket编程
  • 原文地址:https://www.cnblogs.com/kkkky/p/6572660.html
Copyright © 2011-2022 走看看