JAVA学习day11 JavaSE基础——Object类中的常用方法

1. object 类的概述

  Object 类是类层次结构的根类,每个类都使用Object类作为父类;所有类(包括数组)的对象都实现这个类的方法。

2. Object 类的hasCode方法

  public int hasCode()
   ● 返回该对象的一个哈希码值。默认情况是根据对象的地址来计算。
   ● 哈希码值不是对象的实际地址值,可以理解为逻辑地址值。

如下代码就是两个不同对象的哈希码值:

public class Test {public static void main(String[] args) {Object obj = new Object();Object obj2 = new Object();int val = obj.hashCode();int val2 = obj2.hashCode();System.out.println(val);System.out.println(val2);}
}


3. Object类中的getClass()

  public final class getClass()
   ● 返回Object的运行时类

代码演示:

public class Test2 {public static void main(String[] args) {Object o = new Object();Object o1 = new Object();Object aClass = o.getClass();Object aClass1 = o1.getClass();boolean b = (aClass == aClass1);System.out.println(b);}
}

4. Object 类中的toString 方法

  public String toString()
   ● 返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
   ● Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

   getClass().getName() + ‘@’ + Integer.toHexString(hashCode())

代码演示:

public class Test3 {public static void main(String[] args) {Person p1 = new Person("张三", 21);Person p2 = new Person("李四", 32);System.out.println(p1.toString());System.out.println(p2.toString());}
}
class Person{String name;int age;public Person(String name, int age){this.name = name;this.age = age;}//重写toString方法@Overridepublic String toString(){return "姓名:"+this.name+" "+"年龄:"+this.age;}
}

重写之前执行结果:

重写之后执行结果:

5. Object 类中的equals方法

  public boolean equals(Object obj)
   ● 指示其他某个对象是否与此对象“相等”。
   ● 对于任何非空引用值 x,x.equals(null) 都应返回 false。
   ● Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。

代码演示:

public class Test4 {public static void main(String[] args) {Student stu = new Student("小明", 22);Student stu2 = new Student("小住", 22);boolean b = stu.equals(stu2);System.out.println(b);}
}
class Student extends Person {public Student(String name, int age) {super(name, age);}@Overridepublic boolean equals(Object obj) {if (!(obj instanceof Student)) {return false;}if(obj == null){return false;}if (obj == this){return true;}Student stu = (Student) obj;return this.name == stu.name && this.age == stu.age;}
}

执行结果:

6. Object 类的clone 方法

protected Object clone() throws CloneNotSupportedException
   ● 创建并返回该对象的一个副本。
   ● 如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。
   ● clone 方法的权限修饰符是protected ,子类要重写该方法后才能使用。

代码演示:

public class Test5 {public static void main(String[] args) throws CloneNotSupportedException {Teacher teacher = new Teacher("张飞", 36);Teacher teacher1 = (Teacher) teacher.clone();teacher1.name = "刘备";teacher1.age = 39;System.out.println(teacher);System.out.println(teacher1);System.out.println(teacher.equals(teacher1));}
}
class Teacher extends Person implements Cloneable{public Teacher(String name, int age) {super(name, age);}@Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();}
}

执行结果:

可见复制的对象和被复制的对象都是独立存在的,两者有不同的内存地址。

JavaSE基础——Object类中的常用方法相关推荐

  1. Object类中的常用方法

    这里写目录标题 一,equals()方法 二,toString()方法 三,finalize()方法 四,hashcode()方法 一,equals()方法 1,所有类都从Object类中继承equa ...

  2. JavaSE基础——常用类1

    JavaSE基础--常用类1 一.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它当中描述的所有方法子类都可以使用. 如果在类的声明中没有显式地使用exte ...

  3. JavaSE之Object类

    目录 Object类的概述 Object类中常用方法介绍 1.hashCode()方法 2.getClass()方法 3.toString()方法 4.equals()方法 Object类的概述 Ob ...

  4. Object类中的方法

    基本描述: (1)Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: (2)Object类是所有Java类的祖先.每个类都使用 Obje ...

  5. python中的object是什么意思_Python object类中的特殊方法代码讲解

    python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...

  6. Thread和Object类中关于线程的相关方法

    Thread和Object类中线程的7个重要方法概览 类 方法名称 简介 Thread sleep相关 相关表示sleep所有的重载方法,参数不同,实际作用大同小异 Thread join() 等待其 ...

  7. object类中的equals与自定义equals方法详解

    object类中的equals与自定义equal方法详解 1.this怎么理解?this == obj表示什么? this就是当前你new出来的对象,这里指谁调用equal方法this指的就是谁,ob ...

  8. String类中的equals方法与Object类中的equals方法的不同点

    1.首先我们看看Object类中的equals方法 public boolean equals(Object obj) {return (this == obj);} 我们可以看出Object类中判断 ...

  9. 重写Java Object类中的equals()方法

    Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...

  10. wait/notify/notifyAll在Object类中

    wait/notify/notifyAll在Object类中 因为我们在使用synchronized锁 对象锁可以是任意对象,所以wait/notify/notifyAll需要放在Object类中. ...

最新文章

  1. 声音信标发出白噪声和发出chirp信号的对比测距说明
  2. python支持的数据类型list_Python基本数据类型之list
  3. 程序内存区域分配(五个段)--终于搞明白了
  4. MySQL的优化与执行
  5. Java 中的多线程你只要看这一篇就够了
  6. Dll 导出类 [示例代码]
  7. 电力电子技术 matlab仿真指导,在_电力电子技术_课程教学中展开Matlab仿真训练_唐贤伦...
  8. 软考路:2021年系统架构设计师之考试
  9. Oracle - TRUNC, ROUND, CEIL, FLOOR
  10. 健康窈窕美女第一课 减肥vs早餐四个关键问题。
  11. DevOps和持续交付
  12. 美味爱读提供一种崭新的阅读方式
  13. windows 2012 抓明文密码方法
  14. 2021年电力电缆作业考试题库
  15. AEJoy —— 表达式之模拟超越与反弹(五)【JS】
  16. windows屏幕放大镜
  17. Python爬虫系列之爬取美团美食板块商家数据,选困的福利
  18. input标签用法与功能全面解析
  19. http请求 405错误 方法不被允许 (Method not allowed)
  20. 决策树可视化以及数据所要的处理(查漏补缺)

热门文章

  1. 反射方式,获取出集合ArrayList类的class文件对象
  2. 布局--------动态添加 相对布局
  3. 极性大小判断技巧_别愣着了,来分析分析正极性半波整流电路!
  4. tomcat依赖导入步骤_将tomcat源码导入eclipse
  5. 拓端tecdat|R语言用RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测
  6. 拓端tecdat|R语言广义相加(加性)模型(GAMs)与光滑函数可视化
  7. 拓端tecdat|R语言有极值(EVT)依赖结构的马尔可夫链(MC)对洪水极值分析
  8. 拓端tecdat|Tableau 数据可视化:探索性图形分析新生儿死亡率数据
  9. 拓端tecdat|R语言用多重插补法估算相对风险
  10. 拓端tecdat|R语言文本挖掘tf-idf,主题建模,情感分析,n-gram建模研究