使用.Clone()方法克隆对象与使用=Sign克隆对象有什么不同?

What is the difference between cloning the object with .clone() method and = sign?(使用.Clone()方法克隆对象与使用=Sign克隆对象有什么不同?)

本文介绍了使用.Clone()方法克隆对象与使用=Sign克隆对象有什么不同?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我真的搞不懂.clone()方法和试图克隆对象时简单地在对象之间放置=号有什么区别。

谢谢。

推荐答案

如果创建新狗:

Dog a = new Dog("Mike");

然后:

Dog b = a;
您将有一个Dog和两个引用相同Dog的变量。因此正在做:

a.putHatOnHead("Fedora");

if (b.hasHatOnHead()) {
    System.out.println("Has a hat: " + b.getHatName());
}

将打印狗有一顶Fedora帽子,因为ab指的是同一只狗。

相反,执行以下操作:

Dog b = a.clone();

现在您有两个克隆狗。如果你给每只狗戴上帽子:

a.putHatOnHead("Rayden");
b.putHatOnHead("Fedora");

每只狗都有自己的帽子。

这篇关于使用.Clone()方法克隆对象与使用=Sign克隆对象有什么不同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:使用.Clone()方法克隆对象与使用=Sign克隆对象有什么不同?

基础教程推荐