Object_clone
2024-06-03 04:19:28
clone
- protected Object clone() throws CloneNotSupportedException
- 一般情况下,要clone方法需要抛出异常
- 创建并返回此对象的一个副本
- x.clone() != x
- 也就是说是不同的对象,复制的对象与原来的对象是一个不同的对象
- x.clone().getClass() == x.getClass()
- 说明是同一个类
- Cloneable接口
- 在clone方法所在类中需要实现这个接口,因为这个接口是复制的标志接口
- 记住: 这个接口没有构造方法与成员方法
package cn.itcast_04;public class Student4 implements Cloneable {private String name;private int age;public Student4() {super();}public Student4(String name, int age) { //调用是Object构造方法 super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//重写clone()方法重写 @Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} }
package cn.itcast_04; /* *protected void finalize();当垃圾回收器确定不存在对象有更多引用时候,垃圾回收器调用此方法*但是什么时候调用该方法不知道**proected Object clone();创建并且返回该对象的副本* A:重写该方法;** Cloneabel;此类实现了Cloneable 接口,以指示Object.clone()方法对对象复制换句话说,只有实现该接口,才能复制对象Cloneable 是标志接口,里面没有方法,只有继承该方法才能克隆对象*/public class StudentDemo4 {public static void main(String[] args) throws CloneNotSupportedException{//创建学生对象Student4 s = new Student4();s.setName("liqingxiang");s.setAge(24);Object obj = s.clone();Student4 s2 = (Student4)obj;System.out.println("name:" + s.getName() + ", age:" +s.getAge());System.out.println("name:" + s2.getName() + ", age:" +s2.getAge());System.out.println("==============");//s对象改变,但是s2对象属性没变,因此他们是两个不同的对象s.setAge(29);s.setName("xiaoming");System.out.println("name:" + s2.getName() + ", age:" +s2.getAge());} }
转载于:https://www.cnblogs.com/yu-zhi/p/9527155.html
Object_clone相关推荐
- 《克隆人的进攻》面向对象Java版
Java Q&A Java 问答 Attack of the clones 克隆人的进攻 之 面向对象Java版 Time and space considerations in four d ...
最新文章
- UIViewController的生命周期及iOS程序执行顺序
- VUE2.X组件之间通信的2种方式(针对子组件值变化去改变相应父组件的值)
- 数据结构特性解析 (二) ArrayList
- nullptr/nullptr_t
- 2006年软件500强
- Ajax jquery的库的简化版本
- LeetCode 1708. 长度为 K 的最大子数组
- jquery form java_springmvc利用jquery.form插件异步上传文件示例
- 如何写出更好的代码(文末有福利)
- Hutool:时间日期工具
- cgic 测试demo
- 验证码这种反人类的存在,浪费全球人口15万小时,有办法取缔吗?
- 最小二乘法以及正交最小二乘(OLS)的推导与简单比较
- 图解机器学习神器:Scikit-Learn
- ubuntu下破解rar文件的密码
- WorkMan学习篇:三
- Linux移植EC20 4G模块驱动简易教程
- 中文版扩散模型课程:第一单元
- 如何用数据分析进行游戏道具的精准投放?
- Deep Learning × ECG (5) :利用循环神经网络RNN对心律失常ECG数据进行分类