资讯专栏INFORMATION COLUMN

Java对象克隆了解标识接口

DesGemini / 424人阅读

摘要:主要内容清楚对象克隆的操作结构巩固接口的作用具体内容对象克隆对象克隆指的就是对象的复制操作,在类里面提供有一个专门克隆的方法。此方法上抛出一个异常,如果要使用对象克隆的类没有实现接口,那么就会抛出此异常。

主要内容

清楚对象克隆的操作结构
巩固接口的作用
具体内容

对象克隆

对象克隆指的就是对象的复制操作,在Object类里面提供有一个专门克隆的方法。

对象克隆:protected Object clone() throws CloneNotSupportedException。
此方法上抛出一个“CloneNotSupportedException”异常,如果要使用对象克隆的类没有实现Cloneable接口,那么就会抛出此异常。但是Cloneable接口看不见方法,此为标识接口,表示一种操作能力。

范例:实现克隆操作

public class Book implements Cloneable { // 此类的对象可以被克隆

private String title;
private double price;

public Book(String title, double price) {
    this.title = title;
    this.price = price;
}
public void setTitle(String title) {
    this.title = title;
}
@Override
public String toString() {
    reture "书名:" + this.title + ",价格:" + this.price + "。";
}
// 由于此类需要对象克隆操作,所以才需要进行方法的覆写
@Override
public Object clone() throws CloneNotSupportedException {
    return super.clone();  // 调用父类的克隆方法
}

}
public class TestDemo {

public static void main(String args[]) throws Exception {
    Book bookA = new Book("Java开发", 79.8);
    Book bookB = bookA.clone();
    bookB.setTitle("Android开发");
    System.out.println(bookA);
    System.out.println(bookB);
}

}
输出结果

书名:Java开发,价格:79.8。
书名:Android开发,价格:79.8。
对象的克隆操作,理论价值大于实际价值,因为在实际的工作里面很少会用到对象克隆 的操作。重点在于标识接口上,以后依然会见到没有方法的接口,这样的接口就好比通行证一样,表示的是能力。

总结

标识接口:没有任何方法定义,只是一个空接口的声明。

欢迎加入学习交流群569772982,大家一起学习交流。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67658.html

相关文章

  • Java™ 教程(Object作为超类)

    Object作为超类 java.lang包中的Object类位于类层次结构树的顶部,每个类都是Object类的直接或间接的后代,你使用或编写的每个类都继承Object的实例方法,你不需要使用任何这些方法,但是,如果你选择这样做,你可能需要使用特定于你的类的代码重写它们,本节中讨论的从Object继承的方法是: protected Object clone() throws CloneNotSu...

    RichardXG 评论0 收藏0
  • 深入理解原型模式 ——通过复制生成实例

    摘要:定义给出的原型模式定义如下使用原型实例指定将要创建的对象类型,通过复制这个实例创建新的对象。具体原型类角色负责实现复制现有实例并生成新实例的方法。 Java面试通关手册(Java学习指南,欢迎Star,会一直完善下去,欢迎建议和指导):https://github.com/Snailclimb/Java_Guide 系列文章回顾: 设计模式专栏深入理解单例模式深入理解工厂模式 深入理解...

    Pocher 评论0 收藏0
  • Object类深入研究

    摘要:类深入研究类有哪些方法底层实现不研究还有重载了两个一共有个方法,其中一个为底层的实现,其中两个和重载方法。而没有对锁释放但是要注意的是方法调用后,被唤醒的线程不会立马获得到锁对象。 Object类深入研究 Object类有哪些方法 registerNatives()【底层实现、不研究】 hashCode() equals(Object obj) clone() toString()...

    MiracleWong 评论0 收藏0
  • Object对象你真理解了吗?

    摘要:无论在中出现什么,都可以认为它是对象除了八大基本数据类型。让当前线程等待某个对象的锁,当然应该通过这个对象来操作了。但是要注意的是方法调用后,被唤醒的线程不会立马获得到锁对象。主要的区别在于在释放同时,释放了对象锁的控制。 前言 五一回家又断更了一个放假时间了~~~ 只有光头才能变强 回顾前面: ThreadLocal就是这么简单 多线程三分钟就可以入个门了! 多线程基础必要知识点!...

    anquan 评论0 收藏0
  • Java 作者谈克隆方法的实现

    摘要:不合规的代码示例合规解决方案参阅复制构造函数与克隆也可以参阅应该实现克隆覆盖的类应为并调用下面为引文翻译谈设计与作者的对话,作者首次在上发表,年月日复制构造函数与克隆在你的书中,你建议使用复制构造函数而不是实现和编写。 今天在用 sonar 审核代码, 偶然看到下面的提示:showImg(https://segmentfault.com/img/bVbqioZ?w=858&h=116)...

    gaomysion 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<