JavaSE(六)——Object类、克隆方法
文章目录
- 1. Object类
- 1.1 定义
- 1.2 常用方法
- 2. 克隆方法
- 2.1 定义
- 2.2 对象浅克隆要注意的细节
1. Object类
1.1 定义
Object类是顶层父类,所有的类都直接或间接继承该类。
1.2 常用方法
(1)hashCode(): 返回此对象的哈希码值,不是对象的实际地址值,可理解为逻辑地址值。不同对象的哈希码值不同,同一对象的哈希码值相同 。
(2)getClass():返回此对象的运行时类。将JVM为这个文件创建的对象获取出来。
(3)toString(): 返回此对象的字符串表示。一般建议在Objiect类的子类中重写该方法。
(4)equals(Object object):判断此对象是否与obj对象“相等”。
注意:“==”与equals()区别
“==”号在比较基本数据类型(int、float…)时,比较的是两个对象的字面值;在比较引用型数据类型(string…)时比较的是两对象的地址值。
equals():在所有没有重写equals()方法的类中,调用equals()方法和使用==号的效果一样,也是比较的地址值,然而,Java提供的所有类中,绝大多数类都重写了equals()方法,重写后的equals()方法一般都是比较两个对象的字面值。
实例
运行结果
2. 克隆方法
2.1 定义
clone()的权限修饰符是受保护的,在用的时候,让该类重写该方法,并把该方法的权限修饰符改为public。使用clone()方法采用的是浅克隆的方式。
实例
运行结果
-
2.2 对象浅克隆要注意的细节
(1)如果一个对象需要调用clone的方法克隆,那么该对象所属的类必须要实现Cloneable接口。
(2)Cloneable接口只不过是一个标识接口而已,没有任何方法。只是给该类打一个标记,告诉JVM我要完成某种操作。
(3)对象的浅克隆就是克隆一个对象的时候,如果被克隆的对象中维护了另外一个类的对象,这时候只是克隆另外一个对象的地址,而没有把另外一个对象也克隆一份。
(4)对象的浅克隆也不会调用到构造方法。
实例
运行结果
因为在Dog类里维护了DogFood类的dogfood对象,所以只是克隆了dogfood的地址,使得运行结果均为”泡面搭档火腿肠“。
JavaSE(六)——Object类、克隆方法相关推荐
- 面向对象回顾(静态变量、类加载机制/双亲委派模型、Object类的方法、类和对象区别)
1. 静态变量存在什么位置? 方法区 2. 类加载机制,双亲委派模型,好处是什么? 某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务, ...
- java面试题27 java中下面哪些是Object类的方法()
java面试题27 java中下面哪些是Object类的方法() A notify() B notifyAll() C sleep() D wait() 蒙蔽树上蒙蔽果,蒙蔽树下你和我.遇到这种题,我 ...
- 【JAVA】Object类的方法简谈
Object类的方法简谈 Java中所有的类都继承自Object类,那我们今天来探讨一下Object类中的方法 PS:Object源码中,作者那一栏中,出现了这个 package java.lang; ...
- JavaSE之Object类
目录 Object类的概述 Object类中常用方法介绍 1.hashCode()方法 2.getClass()方法 3.toString()方法 4.equals()方法 Object类的概述 Ob ...
- 【克隆】——Object类clone方法彻底剖析
目录 一.什么是克隆 二.为什么要克隆 三.如何克隆 四.深克隆和浅克隆 浅克隆 深克隆 一.什么是克隆 克隆就是依据已经有的数据,创造一份新的完全一样的数据拷贝. 在Java中对象的克隆有深克隆和浅 ...
- JAVA-初步认识-第十一章-object类-equals方法覆盖
一. 现在要谈论equals方法另一个方面.如果不写equals方法,直接用==来比较也是可以的,貌似equals方法有点多余. 现在不比较对象是否相等,而是比较对象中的特定内容,比如说对象的年龄,之 ...
- 请列举你所知道的Object类的方法并简要说明。
小白一个 只记得euqals()和toString()方法了-,重新再整理下好咯 Object类是所有类的父类 Object中的方法进行简要的分析 Clone():创建并返回对象的副本 equals( ...
- Java基础深度总结:Object类-clone方法
凡心所向,素履所往,生如逆旅,一苇以航. 内容 1.clone概述 2.Cloneable接口 3.clone与new的区别 4.浅拷贝与深拷贝(重点) 5.Object.clone 6.浅拷贝存在的 ...
- python 类继承object_python-面向对象-17-继承/object类/mro方法
1.继承的基本概念 继承是面向对象程序设计的重要特征,也是实现"代码复用"的重要手段. 如果一个新类继承自一个设计好的类,就直接具备已有类的特征,这样就大大降低了工作难度,因为很多 ...
最新文章
- 科技部:学术不端零容忍!违规人员所获职称、奖金等全部清退归零
- 按要求罗列所有字符串字符序列
- 迷你世界支持服务器,迷你世界云服务器
- 眨眼算什么,让蒙娜丽莎像你一样唠上嗑才算硬核
- Linux(9.21-9.27)学习笔记
- [转载]中国公历算法
- 八皇后时间复杂度_【算法打卡】N皇后
- ajax拼接外部变量,在ajax调用中访问函数外部变量的问题
- 【iCore3 双核心板_ uC/OS-III】例程四:时间管理
- Java服务器 dm Server
- ubuntu 分区_系统小技巧:迁移通过Wubi方式安装的Ubuntu系统
- 都别争了!分布式锁也是锁
- Mysql 的uuid()函数以及replace()函数使用
- 共阳极数码管显示c语言,基于74HC595单片机驱动数码管设计
- configure: error: cups-config not found
- 自考免考的计算机应用,自学考试计算机免考条件
- 搭建配置私服-nexus ,Maven中的使用——3
- java ee框架技术进阶式教程_《JavaEE框架技术进阶式教程》新版任务式教案
- 利用“顺丰速运”下发GuLoader恶意软件的风险分析
- 请求数据应该放在Created还是Mounted