• 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比较的是内存的首地址,这时候和==是一样的,即比较两边指向的是不是同一个对象。
    	}
    }
    

      

     
  • 相关阅读:
    [AS3]AMF3+JAVA的调用范例
    SmartFoxServer,多人flash游戏开发
    Flex2 发现之旅:在Flex中嵌入完整HTML页面
    让.Net 程序脱离.net framework框架运行
    ASP.NET 数据列表控件的分页总结
    中国移动飞信免费发短信API接口(第三方 Fetion API)[原创]
    Ubuntu下安装wine详细介绍
    SQL SERVER 2008 R2 序列号大全
    linux 下安装ATI 显卡驱动
    jdk 环境变量设置
  • 原文地址:https://www.cnblogs.com/kkkky/p/6572660.html
Copyright © 2020-2023  润新知