zoukankan      html  css  js  c++  java
  • object类

    1.Object类的概述

    1.所有的类都直接或者间接的继承该类   (object)

    2.Object类中的 hashCode() 方法

    1.public hashCode() 

      返回该对象的哈希码值,默认情况下会根据对象的地址去计算,

      不同对象的 hashCode() 一般来说不会相同,但不同对象的 hashCode() 肯定相同

      

    1 Object o = new Object();
    2        int hashCode = o.hashCode();  // 查看源码的方式:ctrl + 鼠标左键
    3        System.out.println(hashCode); //1163157884
    4 
    5        Student s = new Student("zhangsan",19);
    6        Student s2 = new Student("lisi",23);
    7        System.out.println(s.hashCode());
    8        System.out.println(s2.hashCode());  // ctrl + alt + 向下

    3.Object类的 getClass()方法

      1.public final Class getClass()

       返回此 Object 的运行类,返回类名 ,包名

    4.toString()方法

      public String toString ()

      返回该对象的在字符串表示        (地址值十六进制的形式出现)

      默认数据: getClass().getName() + "@" + Integer.toString(hashCose)   

      默认数据一般对我们来说没意义,建议重写该方法

      在输出对象名时显示

    5.equals()方法

      调用对象是否与输入对象”相等“

      默认情况比较的时对象的引用是否相等,但比较对象引用没意义,所以建议重写

      

    1 public boolean equals(Object obj){
    2     Student s = (Student)obj;//向下转型到Student类中
    3     return(this.name.equals(s.name)&&this.age == s.age)
    4     }

    6. ==  和 equals 的区别

       ==     比较运算符,即可以比较基本数据类型,也可以比较引用数据类型,

             基本数据类型比较的是值,引用数据类型比较的是地址值

       equals   只是一个方法,只能比较引用用数据类型,所有对象都会继承Object类中的方法,

            如果没有重写Object类中的equals方法,那equals和== 的比较引用数据类型没有区别

            重写后equals方法比较的是对象中的属性

         在比较引用数据类型时 == 比较地址值   equals比较内容

      

  • 相关阅读:
    面向对象之类属性、类方法,静态方法
    python面向对象之继承
    python之面向对象练习
    python面向对象
    CentOS7.5最小化安装之后的配置
    怎么在一台电脑上安装win7与centos7双系统
    安装Win7时删除系统保留的100M隐藏分区
    win7在安装时跳过输入用户名界面,直接开启管理员用户
    ESP8266 wifi干扰钓鱼实现
    ESP8266 wifi干扰、钓鱼实现
  • 原文地址:https://www.cnblogs.com/xsh726/p/11365168.html
Copyright © 2011-2022 走看看