java中object类实例分析
程序员文章站
2024-02-21 10:50:10
问:什么是object类?
答:object类存储在java.lang包中,是所有java类(object类除外)的终极父类。当然,数组也继承了object类。然而,...
问:什么是object类?
答:object类存储在java.lang包中,是所有java类(object类除外)的终极父类。当然,数组也继承了object类。然而,接口是不继承object类的,object类不作为接口的父类。
下面,我们就通过实例,对object进行分析
public class objectstu { /*object类:java里所有类的父类,顶层的类 *equals:判断两个对象是否"相等"; *hashcode:返回一个对象的哈希码值,是一个整数 *因为之后的容器,例如hashset和hashmap会对元素进行去重的处理;所以equals和hashcode需要同时重写; *重写之后需要满足的标准: *当equals的结果为true的时候,要求两个对象的hashcode值相等; *当equals的结果为false的时候,要求两个对象的hashcode值不等;(hashcode可以相等,但是如果不等可以提升效率) *tostring:返回对象的字符串表示 *作用:方便程序内查看对象属性,方便调试代码 *debug学习: *1.在可能出现bug的地方设置断点 *2.run as debug *3.f6,执行当前代码;f5,进入当前本句代码的方法内部;f8,快速跳到下一个断点,如果没有下一个断点,运行余下所有代码 *equals: *1.一致性:使用对象a调用equals和对象b进行比较,每一次的结果都应该一样 *2.自反性:对象a调用equals比较对象b和对象b调用equals比较对象a的结果应该一样 */ public static void main(string[] args) { person per = new person("小王",10,150); person per1 = new person("小王",20,140); person per2 = per; system.out.println(per==per1); system.out.println(per.equals(per1)); string str = "123"; str.equals("123"); str.hashcode(); system.out.println(per.hashcode()); system.out.println(per1.hashcode()); system.out.println(per2.hashcode()); system.out.println(per); system.out.println(per1); } } class person { string name; int age; int height; public person(string name, int age,int height) { super(); this.height = height; this.name = name; this.age = age; } /*@override public boolean equals(object obj) { if(this==obj){ return true; } if(obj instanceof person){ person per = (person)obj; if(this.name.equals(per.name)&&this.age==per.age){ return true; } } return false; }*/ //重写hashcode /*@override public int hashcode(){ return name.hashcode()+age*31+height*31; }*/ @override public int hashcode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + height; result = prime * result + ((name == null) ? 0 : name.hashcode()); return result; } @override public boolean equals(object obj) { if (this == obj) return true; if (obj == null) return false; if (getclass() != obj.getclass()) return false; person other = (person) obj; if (age != other.age) return false; if (height != other.height) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } @override public string tostring() { return "person[name="+name+",age="+age+"]"; } }
总结
以上就是本文关于java中object类实例分析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
上一篇: FastCGI,nginx
下一篇: Android实现读取NFC卡卡号示例