这篇文章主要介绍了简介Java编程中的Object类,是Java入门学习中的基础知识,需要的朋友可以参考下

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

定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类。例如:

public class Demo{

// ...

}

实际上是下面代码的简写形式:

public class Demo extends Object{

// ...

}

在Java中,只有基本类型不是对象,例如数值、字符和布尔型的值都不是对象,所有的数组类型,不管是对象数组还是基本类型数组都是继承自 Object 类。

Object 类定义了一些有用的方法,由于是根类,这些方法在其他类中都存在,一般是进行了重载或覆盖,实现了各自的具体功能。

equals() 方法

Object 类中的 equals() 方法用来检测一个对象是否等价于另外一个对象,语法为:

public boolean equals(Object obj)

例如:

obj1.equals(obj2);

在Java中,数据等价的基本含义是指两个数据的值相等。在通过 equals() 和“==”进行比较的时候,引用类型数据比较的是引用,即内存地址,基本数据类型比较的是值。

注意:

equals()方法只能比较引用类型,“==”可以比较引用类型及基本类型。

当用 equals() 方法进行比较时,对类 File、String、Date 及包装类来说,是比较类型及内容而不考虑引用的是否是同一个实例。

用“==”进行比较时,符号两边的数据类型必须一致(可自动转换的数据类型除外),否则编译出错,而用 equals 方法比较的两个数据只要都是引用类型即可。

hashCode() 方法

散列码(hashCode)是按照一定的算法由对象得到的一个数值,散列码没有规律。如果 x 和 y 是不同的对象,x.hashCode() 与 y.hashCode() 基本上不会相同。

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

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

在同一个应用程序执行期间,对同一个对象调用 hashCode(),必须返回相同的整数结果——前提是 equals() 所比较的信息都不曾被改动过。至于同一个应用程序在不同执行期所得的调用结果,无需一致。

如果两个对象被 equals() 方法视为相等,那么对这两个对象调用 hashCode() 必须获得相同的整数结果。

如果两个对象被 equals() 方法视为不相等,那么对这两个对象调用 hashCode() 不必产生不同的整数结果。然而程序员应该意识到,对不同对象产生不同的整数结果,有可能提升hashTable(后面会学到,集合框架中的一个类)的效率。

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

toString() 方法

toString() 方法是 Object 类中定义的另一个重要方法,是对象的字符串表现形式,语法为:

public String toString()

返回值是 String 类型,用于描述当前对象的有关信息。Object 类中实现的 toString() 方法是返回当前对象的类型和内存地址信息,但在一些子类(如 String、Date 等)中进行了 重写,也可以根据需要在用户自定义类型中重写 toString() 方法,以返回更适用的信息。

除显式调用对象的 toString() 方法外,在进行 String 与其它类型数据的连接操作时,会自动调用 toString() 方法。

以上几种方法,在Java中是经常用到的,这里仅作简单介绍,让大家对Object类和其他类有所了解,详细说明请参考 Java API 文档。

java程序设计专业介绍_简介Java编程中的Object类相关推荐

  1. java程序设计教学改革_《Java程序设计》课程教学改革与实践

    1概述目前,Java已经成为全球最受欢迎的编程语言之一.Java程序设计课程是很多高校计算机相关专业的主干课程,其内容主要是介绍J2SE相关知识,包括Java语法基础.面向对象理论知识.基本类库.图形 ...

  2. java程序设计模拟题_《Java程序设计》东师模拟题题目及答案

    <Java程序设计>东师模拟题题目及答案 2020-08-30 09:08:37 931 有学员问关于<Java程序设计>东师模拟题题目及答案的题目的参考答案和解析,具体如下: ...

  3. java程序设计陈国君_《JAVA程序设计基础(第6版)/陈国君》【价格 目录 书评 正版】_中国图书网...

    JAVA程序设计基础(第6版)/陈国君 节选 第3章Java语言基础 本章主要内容:  数据类型:  变量:  基本类型变量:  数据类型的转换规则:  从键盘输入数据的语句格式:  运算 ...

  4. java程序设计校园一卡通_基于Java Card的校园一卡通的应用设计

    随着国内高校信息管理的逐渐普及,信息化管理水平的不断提升,高校内部应该考虑通过智能卡的方式来降低内部管理过程中的应用成本,这不仅仅能够提升管理效率,还能够大大提升校内资源的优化配置,提供信息功效的便利 ...

  5. java程序设计 秒表计时器_【Java】Java计时器(秒表)

    import javax.swing.*;importjava.awt.HeadlessException;importjava.awt.BorderLayout;importjava.awt.Flo ...

  6. java程序设计实用教程_清华大学出版社-图书详情-《Java程序设计实用教程》

    技术具有卓越的通用性.高效性.平台移植性和安全性,经过20多年的发展,目前已广泛应用于PC.数据中心.游戏控制台.超级计算机.移动电话和互联网,同时拥有全球最大的开发者专业社群.在全球云计算和移动互联 ...

  7. #《JAVA程序设计》 20155214 实验五 网络编程与安全

    <JAVA程序设计> 20155214 实验五 网络编程与安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 要求一 结对实现中缀表达式转后缀 ...

  8. 20165230 《Java程序设计》实验五《网络编程与安全》实验报告

    20165230 <Java程序设计>实验五<网络编程与安全>实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: ...

  9. 2018-2019-2 20175227张雪莹《Java程序设计》实验五 《网络编程与安全》

    2018-2019-2 20175227张雪莹<Java程序设计> 实验五 <网络编程与安全> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号:20 ...

最新文章

  1. ps怎么把一个颜色替换成另一个颜色_图标设计,用PS制作一款小清新的拟物时钟...
  2. b区计算机考研招不满的大学,B区又一所院校招收大量调剂!一志愿不满!
  3. Redis适用于高并发的递增、递减功能
  4. 卧槽!面试官 5 连问一个 TCP 连接可以发多少个 HTTP 请求?
  5. java 手机号码归属地_【原创】Java实现手机号码归属地查询
  6. 放假了,暂告一段落,迎接研究生
  7. (组合数学)AtCoder Grand Contest 019 F - Yes or No
  8. IOS UI开发基础之超级猜图完整版本-08
  9. android脚本快捷方式,Android:如何创建主屏幕快捷方式启动shell脚本?
  10. AcWing 1402. 星空之夜 1月28
  11. 创建win32 dll
  12. 【OpenCV 例程200篇】56. 低通盒式滤波器
  13. 开心的小明 (NYOJ49) [动态规划.01背包]
  14. 推理 —— 猜帽子颜色
  15. [原创]Linux实现服务延迟启动
  16. Android RecyclerView 子条目(item)嵌套 RecyclerView
  17. Elasticsearch自定义插件
  18. 常见网页特效案例:网页轮播图
  19. dev c++怎么设置断点_linux操作系统引导与启动——内核启动和初始化(二)断点...
  20. uboot 启动 linux ----2 ----set setevn saveenv 命令 保存介质

热门文章

  1. hadoop python入门_Hadoop Streaming入门
  2. 使用fetch函数发送ajax
  3. python作用域(scope)(三分钟读懂)
  4. vb.net服务器启动后cpu占用了70_服务器如何区分攻击类型?
  5. 购买域名以及申请证书
  6. 《深度学习笔记》——初识PyTorch的学习笔记
  7. 【可行】adb修改手机代理方式
  8. ubuntu 两行命令自动安装最合适的NVIDIA驱动
  9. XGBoost深度理解
  10. eclipse技巧总结