问:什么是Object类?
答:Object类存储在java.lang包中,是所有java类(Object类除外)的终极父类。当然,数组也继承了Object类。然而,接口是不继承Object类的,Object类不作为接口的父类。
下面,我们就通过实例,对object进行分析
public class ObjectStu { /*Object类:java里所有类的父类,顶层的类 *equals:判断两个对象是否"相等"; *hashcode:返回一个对象的哈希码值,是一个整数 *因为之后的容器,例如hashset和hashMap会对html" target="_blank">元素进行去重的处理;所以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类实例分析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
java内部测试类代码详解
java中继承测试代码分析
java中stack(栈)的使用代码实例
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
我正在使用一个实现自己的Array类的JDBC库。为了使用所述Array,他们将其转换为Object[]。 https://github.com/housepower/ClickHouse-Native-JDBC/blob/master/src/test/java/com/github/housepower/jdbc/QueryComplexTypeITest.java#L120 我使用的是Clo
本文向大家介绍JS深度拷贝Object Array实例分析,包括了JS深度拷贝Object Array实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了JS深度拷贝Object Array。分享给大家供大家参考,具体如下: 遇到的问题 typeof [] 结果为 object typeof {} 结果为 object [] instanceof Array 结果为 true {} i
本文向大家介绍Java匿名类,匿名内部类实例分析,包括了Java匿名类,匿名内部类实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java匿名类,匿名内部类。分享给大家供大家参考,具体如下: 内部类 匿名类 首发日期 :2018-03-25 内部类: 在一个类中定义另一个类,这样定义的类称为内部类。【包含内部类的类可以称为内部类的外部类】 如果想要通过一个类来使用另一个类,可以定
本文向大家介绍Java接口和抽象类实例分析,包括了Java接口和抽象类实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java的接口和抽象类。分享给大家供大家参考。具体分析如下: 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是
问题内容: 我有一个由外部库提供的类。我已经创建了该类的子类。我也有一个原始类的实例。 现在,我想将此实例转换为我的子类的一个实例,而不更改该实例已经具有的任何属性(但无论如何,我的子类都会覆盖这些属性)。 以下解决方案似乎有效。 但是,我不认为该解决方案没有包含我从未想到的警告(对三重否定表示抱歉),尤其是因为重新分配魔术师感觉不对。即使这行得通,我也不禁感到应该有一种更Python化的方式来做
本文向大家介绍Python栈类实例分析,包括了Python栈类实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python栈类。分享给大家供大家参考。具体如下: 希望本文所述对大家的Python程序设计有所帮助。