Java之克隆
来源:互联网 发布:2016淘宝小号批量注册 编辑:程序博客网 时间:2024/06/05 11:20
JAVA克隆对象
一、克隆的含义:克隆一个对象,其属性会保持一样,但两个对象的引用并不相同。
二、克隆的实现:1)clone()方法,返回的是Object对象,需要强制转换;2)类必须实现Cloneable接口,并且重写Objet类的clone()方法.
三、代码实现
1.定义一个类并实现Cloneable接口
2.重写该类的equals方法
3.测试
package com.zyl.learn.common;/** * Created by zyl on 2015/8/2. */public class Person implements Cloneable { private String name; private String sex; private int age; public Person(String name, String sex, int age) { this.name = name; this.age = age; this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public Object clone() { try { return super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); return null; } } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", sex='" + sex + '\'' + ", age=" + age + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Person person = (Person) o; if (age != person.age) return false; if (name != null ? !name.equals(person.name) : person.name != null) return false; if (sex != null ? !sex.equals(person.sex) : person.sex != null) return false; return true; } @Override public int hashCode() { int result = name != null ? name.hashCode() : 0; result = 31 * result + (sex != null ? sex.hashCode() : 0); result = 31 * result + age; return result; }}
3.测试代码
import com.zyl.learn.common.Person;public class clone { public static void main(String[] args) { Person person = new Person("xiao ming", "male", 21); Person clonePerson = (Person) person.clone(); System.out.println("人和克隆人属性:" + person.equals(clonePerson)); System.out.println("人和克隆人:" + (person == clonePerson)); }}4.输出:
人和克隆人属性:true
人和克隆人:false
四、总结
1.克隆类的实现方法
2.克隆对象的本质是独立新空间的复制品
1 0
- java总结之克隆
- Java之克隆机制
- Java之克隆
- java之对象克隆
- JAVA之路_假克隆、浅克隆、深克隆
- java克隆之深克隆和浅克隆
- java克隆之浅层克隆与深层克隆
- java编程基础之克隆
- Java 7之基础 - 浅克隆与深克隆
- java对象克隆之深度克隆 deep clone
- JAVA对象之克隆-原理分析
- Java复习之对象的克隆
- java 克隆
- java克隆
- java克隆
- JAVA克隆
- java 克隆
- JAVA 克隆
- URAL 2026 C - Dean and Schedule
- 每一个优秀的人,都有一段沉默的时光,是那一段时光,不抱怨不诉苦,最后渡过了这段感动自己的日子
- 图层损坏 E/ArcGIS﹕ The map or layer has been destroyed or recycled. 资源未释放
- 猴子
- 黑马程序员-多线程基础知识1
- Java之克隆
- vector培训
- 朴素贝叶斯分类算法(Naive Bayesian classification)
- hihoCoder 1066 无间道之并查集
- 堆和栈的区别
- 黑马程序员——集合
- iOS 人机交互设计(开发)指南及一些综合知识整合
- Unity-数据结构
- zoj3203