1.java.lang.Object类的说明:
  * 1.Object类是所Java类的根父类
  * 2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类
  * 3.Object类中的功能(属性、方法)就具通用性。
  * 属性:无
  * 方法:equals() / toString() / getClass() /hashCode() / clone() / finalize()
  * wait() 、 notify()、notifyAll()
  * 4. Object类只声明了一个空参的构造器

2.equals()方法
  2.1 equals()的使用:
    *1. 是一个方法,而非运算符
    * 2. 只能适用于引用数据类型
    * 3. Object类中equals()的定义:
    * public boolean equals(Object obj) {
        return (this == obj);
    }

说明:Object类中定义的equals()和==的作用是相同的:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体

    * 4. 像String、Date、File、包装类等都重写了Object类中的equals()方法。

      重写以后,比较的不是两个引用的地址是否相同,而是比较两个对象的"实体内容"是否相同。

    * 5. 通常情况下,我们自定义的类如果使用equals()的话,也通常是比较两个对象的"实体内容"是否相同。

      那么,我们就需要对Object类中的equals()进行重写.

      重写的原则:比较两个对象的实体内容是否相同.

  2.2 如何重写equals()
    2.2.1 手动重写举例:

 class User{
String name;
int age;
//重写其equals()方法
public boolean equals(Object obj){
if(obj == this){
return true;
}
if(obj instanceof User){
User u = (User)obj;
return this.age == u.age && this.name.equals(u.name);
}
return false;
}
}

    2.2.2 开发中如何实现:自动生成的

  2.3 回顾 == 运算符的使用:
    * == :运算符
    * 1. 可以使用在基本数据类型变量和引用数据类型变量中
    * 2. 如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等。(不一定类型要相同)
    * 如果比较的是引用数据类型变量:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体
    * 补充: == 符号使用时,必须保证符号左右两边的变量类型一致。

3. toString()方法
  3.1 toString()的使用:
    *1. 当我们输出一个对象的引用时,实际上就是调用当前对象的toString()
    * 2. Object类中toString()的定义:
    * public String toString() {
      return getClass().getName() + "@" + Integer.toHexString(hashCode());
     }

    * 3. 像String、Date、File、包装类等都重写了Object类中的toString()方法。
    * 使得在调用对象的toString()时,返回"实体内容"信息

    * 4. 自定义类也可以重写toString()方法,当调用此方法时,返回对象的"实体内容"
  3.2 如何重写toString()

举例:
//自动实现
@Override
public String toString() {
  return "Customer [name=" + name + ", age=" + age + "]";
}

25-Object类的使用的更多相关文章

  1. 25. object类中的一些方法分析

    1. Object java是面向对象语言,所以其核心思想: 找合适的对象,做合适的事 Object是所有类的终极基类.任何一个类都继承了Object类 2. Object的部分函数列表 1)Stri ...

  2. 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)

    java中的hashcode.equals和toString方法都是基类Object的方法. 首先说说toString方法,简单的总结了下API说明就是:返回该对象的字符串表示,信息应该是简明但易于读 ...

  3. Object类可以接受引用类型

    Object类是一切类的父类,所以Object类可以接受一切引用类型.连数组和接口对象也都可以接受. 1.接受数组 public class ObjectTest{ public static voi ...

  4. 【转载】JAVA基础复习与总结<三> Object类的常用方法

    Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类.这里主要总结Object类中的三个常用方法:toString().equ ...

  5. 第八节 多态和Object类

    多态的定义:某一类事物的多种存在形态 例子:学生类:包含学生A和学生B 学生A对象对应的类型是学生A类型:StudentA studentA = new StudentA; Student stude ...

  6. java.lang.Object类

    Object类是java所有对象的基类,包含着java最核心和最基础的类,在编译时会自动导入.具体的类结构图: 1.构造器 public Object(); 大部分情况下,Java中通过形如 new ...

  7. [ 转载 ] Java基础10--关于Object类下所有方法的简单解析

    关于Object类下所有方法的简单解析 类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直 ...

  8. Java中的Object类的toString()方法,equals()方法

    Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...

  9. Java:Object类详解

    Java的一些特性会让初学者感到困惑,但在有经验的开发者眼中,却是合情合理的.例如,新手可能不会理解Object类.这篇文章分成三个部分讲跟Object类及其方法有关的问题. 上帝类 问:什么是Obj ...

  10. Object类中的五种方法

    clone() Object类源码:protected native Object clone() throws CloneNotSupportedException; 这里有个问题:为什么Sun公司 ...

随机推荐

  1. ES6入门(二)

    目录 ES6入门(二) es6之解构赋值 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 圆括号问题 ES6入门(二) es6之解构赋值 数组的解构赋值 ...

  2. 小师妹学JVM之:Dirty cards和PLAB

    目录 简介 分代收集器中的空间划分 Write barrier和Dirty cards PLAB old space分配对象 总结 简介 分代垃圾回收器在进行minor GC的时候会发生什么操作呢?有 ...

  3. meta viewport相关

    <!DOCTYPE html> H5标准声明,使用 HTML5 doctype,不区分大小写 <head lang=”en”> 标准的 lang 属性写法 <meta c ...

  4. java IO流 (五) 转换流的使用 以及编码集

    转换流的使用 1.转换流涉及到的类:属于字符流InputStreamReader:将一个字节的输入流转换为字符的输入流解码:字节.字节数组 --->字符数组.字符串 OutputStreamWr ...

  5. 3dTiles 数据规范详解[4.2] i3dm瓦片二进制数据文件结构

    i3dm,即 Instanced 3D Model,实例三维模型的意思. 诸如树木.路灯.路边的垃圾桶.长椅等具有明显 重复 特征的数据.这类数据用得较少(笑,现在都喜欢搞BIM.倾斜摄影.精模.白模 ...

  6. Spring Boot Redis 实现分布式锁,真香!!

    之前看很多人手写分布式锁,其实 Spring Boot 现在已经做的足够好了,开箱即用,支持主流的 Redis.Zookeeper 中间件,另外还支持 JDBC. 本篇栈长以 Redis 为例(这也是 ...

  7. 使用Java带你打造一款简单的英语学习系统

    [一.项目背景] 随着移动互联网的发展,英语学习系统能结构化的组织海量资料.针对用户个性需求,有的放矢地呈现给用户,从而为英语学习者提供便利,提升他们的学习效率. [二.项目目标] 1. 实现美观的界 ...

  8. Crawlab Lite 正式发布,更轻量的爬虫管理平台

    Crawlab 是一款基于 Golang 的分布式爬虫管理平台,产品发布已经一年有余,经过开发团队的不断打磨,即将迭代到 v0.5 版本.在这期间我们为 Crawlab 加入了大量社区用户共同期望的功 ...

  9. 第一部分软件测试综述——软件测试背景【软件测试】(美)Ron Patton中文电子版

    截取自:第一部分软件测试综述——软件测试背景[软件测试](美)Ron Patton中文电子版(有需要的可以关注我) 第一部分软件测试综述 对手的程序死掉叫崩溃.自己的程序死掉叫“身体不良反应(idio ...

  10. Ethical Hacking - Web Penetration Testing(13)

    OWASP ZAP(ZED ATTACK PROXY) Automatically find vulnerabilities in web applications. Free and easy to ...