java 对象克隆接口问题
考试有一道题,我这样做调试出来对了,但总是10分题就得7分;有大佬知道怎么才能改正得10分吗?
试题如下
/*
注意:
考生文件夹中存有Test.java的文件,该程序是不完整的,请在begin到end间填写代码实现要求的功能。
请勿删除注释行或改动已有内容,保存时不得更改原有文件名。
编写完成请在考生文件夹下编译调试。
题目要求:请按照面向对象思想设计一个House类来描述房子,只有编号、面积两个属性,再使用接口技术实现房子对象的克隆。
*/
public class Test{
public static void main(String[] args) throws Exception{
House h1=new House("1001",175.5);
House h2=(House)h1.clone();
System.out.println(h2.getArea());
}
}
/****************begin***************/
class House implements Cloneable{
private String Id;
private double Area;
public House(String id,double area)
{
this.Id=id;
this.Area=area;
}
public double getArea()
{
return Area;
}
public String getId()
{
return Id;
}
@Override
protected Object clone()throws CloneNotSupportedException
{
return (House)super.clone();
}
}
/****************end***************/
试题如下
/*
注意:
考生文件夹中存有Test.java的文件,该程序是不完整的,请在begin到end间填写代码实现要求的功能。
请勿删除注释行或改动已有内容,保存时不得更改原有文件名。
编写完成请在考生文件夹下编译调试。
题目要求:请按照面向对象思想设计一个House类来描述房子,只有编号、面积两个属性,再使用接口技术实现房子对象的克隆。
*/
public class Test{
public static void main(String[] args) throws Exception{
House h1=new House("1001",175.5);
House h2=(House)h1.clone();
System.out.println(h2.getArea());
}
}
/****************begin***************/
class House implements Cloneable{
private String Id;
private double Area;
public House(String id,double area)
{
this.Id=id;
this.Area=area;
}
public double getArea()
{
return Area;
}
public String getId()
{
return Id;
}
@Override
protected Object clone()throws CloneNotSupportedException
{
return (House)super.clone();
}
}
/****************end***************/
...全文
相关推荐
java深度克隆
### Java深度克隆知识点详解#### 一、深度克隆概念在Java中,深度克隆是一种用于创建对象副本的方法,它可以确保复制出的新对象与原对象之间没有任何引用关系,也就是说,新对象中的所有成员变量(包括引用类型
Java对象克隆深入解析与实践指南
在Java编程中,对象克隆是创建一个与原对象状态相同的新对象的过程。这一概念对于理解对象复制的机制至关重要,它允许开发者在不直接使用构造函数的情况下快速复制对象。克隆分为浅克隆和深克隆两种类型,它们根据复制的深度不同而有显著的区别。理解这两种克隆技术的原理和实现方式,对于设计高质量、可维护和高效的代码至关重要。在接下来的章节中,我们将深入探讨浅克隆与深克隆的区别和实现方法,以及如何通过实现Cloneable接口和自定义克隆逻辑来满足复杂对象的克隆需求。
java 对象的克隆(浅克隆和深克隆)
在Java中实现浅克隆,需要遵循以下步骤:- **实现Cloneable接口**:Java中的`Cloneable`接口是一个标识接口,不包含任何方法。为了让对象能够被克隆,必须实现此接口。
深入JAVA对象深度克隆的详解
由于序列化和反序列化过程中创建的是新的内存表示,所以新对象与原始对象是分离的。要实现深度克隆,首先,你的类需要实现`java.io.Serializable`接口,这是Java中用于序列化的标记接口。
Java对象的深克隆与浅克隆详解.zip(wcb2003)
然而,对于具有复杂嵌套结构的对象,或者需要保护引用对象不被修改的情况,深克隆是必要的,尽管它可能带来更高的内存开销和性能影响。总的来说,理解Java对象的深克隆和浅克隆是优化代码和解决特定问题的关键。


