package org.ks.常见对象.Object; import java.util.Scanner; /*hashCode(); * 1.返回该对象的哈希码值,默认情况下,该方法会根据对象的地址来计算 * 2.返回的不是对象的实际地址值,可以理解为逻辑地址值 */ public class Demo1_hashCode { public static void main(String[] args) { Object obj = new Object(); int hashcode = obj.hashCode(); System.out.println(hashcode); //991505714 } }
2.hasClass()
package org.ks.常见对象.Object; import java.util.Date; public class Demo2_getClass { public static void main(String[] args) { Date date = new Date(); Class clazz = date.getClass(); //获取clazz对象的字节码文件 String name = clazz.getName(); //以 String 的形式返回此 clazz对象所表示的实体(类,接口,数组类,基本类型或void)名称 System.out.println(name); } }
3.toString()
package org.ks.常见对象.Object; public class Demo3_toString { public static void main(String[] args) { Student stu = new Student("柯盛",20); /* //继承自Object的toString()方法:已十六进制的形式返回stu对象的哈希地址 String str = stu.toString(); //return getClass().getName() + "@" + Integer.toHexString(hashCode()); System.out.println(str); //org.ks.常见对象.Object.Student@16f65612 */ //调用自己重写的toString()方法 System.out.println(stu.toString()); //柯盛,20 System.out.println(stu); } }
4.equals()
package org.ks.常见对象.Object; public class Demo4_equals { public static void main(String[] args) { Student stu1 = new Student("张三",20); Student stu2 = new Student("张三",20);; boolean result = stu1.equals(stu2); //false 比较的是对象的地址值 boolean result2 = stu1.getName().equals(stu2.getName()); //true 一般equals()用于比较对象的某个属性是否相等 System.out.println(result2); //要想直接比较对象之间是否相等,需要对equals()进行重写 /* @Override public boolean equals(Object obj) { Student s = (Student)obj; return this.name.equals(s.name) && this.age == s.age; } */ System.out.println(result); //true } }
原文:https://www.cnblogs.com/kesheng/p/12493508.html