13.java object类

发布时间:2019-11-18 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了13.java object类脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

概念

object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来.

在定义一个类时,如果没有明确的继承一个父类的话,那么它继承的就是object类。

常用方法

取的对象信息:public String toString()

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、标记符“@”和此对象哈希码的无符号十六进制表示组成。
该方法用得比较多,一般子类都有覆盖。

public String toString(){     return getClass().getName() + "@" + Integer.toHexString(hashCOde()); }

getClass()方法返回Object的运行时类类型。不可重写,要调用的话,一般和getName()联合使用,如getClass().getName();

示例

class Book{} class A{     public String toString(){         return "A类重载的toString";     } } public class testDemo {     public static void main(String[] args) {         Book b = new Book();         String s = "hello";         A a = new A();         System.out.PRintln(b);         System.out.println(b.toString());         System.out.println(s);         System.out.println(a);     } } 输出结果: Book@15db9742 Book@15db9742 hello A类重载的toString

在进行对象输出的时候,输出操作会自动调用对象中的toString方法。Object类中的toString()方法为了适应所有对象的输出,所以只输出了对象的编码。

对象比较: public boolean equals(Object obj)

Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一对象.

public boolean equals(Object obj){     return (this == obj) }

该方法在开发中会经常使用到,如果要进行类的相等判断,一般要进行重写。

示例:

class Book{     private String tITle;     private double price;      public Book(String title, double price){         this.title = title;         this.price = price;     }      public String toString(){         return "书名:" + this.title + ",价格:" + this.price;      }      public boolean equals(Object obj){         if(this == obj){             return true;         }         if(obj == null){             return false;         }         if(!(obj instanceof Book)){             return false;         }          Book b = (Book) obj;         if (this.title.equals(b.title) && this.price == b.price){             return true;         }else{             return false;         }     } }  public class testDemo {     public static void main(String[] args) {         Book b1 = new Book("java开发", 66.66);         Book b2 = new Book("java开发", 66.66);         Book b3 = new Book("java开发", 65.0);          System.out.println(b1.equals(b2));         System.out.println(b1.equals(b3));         System.out.println(b1.equals("hello"));     } } 输出结果: true false false

取的对象hash码:public int hashCode()

按照一定的算法由对象得到的一个数值,散列码没有规律。

public native int hashCode();

hashCode() 方法主要用来在集合中实现快速查找等操作,也可以用于对象的比较。

在 Java 中,对 hashCode 的规定如下:

  • 在同一个应用程序执行期间,对同一个对象调用 hashCode(),必须返回相同的整数结果——前提是 equals() 所比较的信息都不曾被改动过。至于同一个应用程序在不同执行期所得的调用结果,无需一致。
  • 如果两个对象被 equals() 方法视为相等,那么对这两个对象调用 hashCode() 必须获得相同的整数结果。
  • 如果两个对象被 equals() 方法视为不相等,那么对这两个对象调用 hashCode() 不必产生不同的整数结果。

简单地说:如果两个对象相同,那么它们的 hashCode 值一定要相同;如果两个对象的 hashCode 值相同,它们并不一定相同。在 Java 规范里面规定,一般是覆写 equals() 方法应该连带覆写hashCode() 方法。

脚本宝典总结

以上是脚本宝典为你收集整理的13.java object类全部内容,希望文章能够帮你解决13.java object类所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。