java clone练习题

(1) 创建一个myString类,在其中包含了一个String对象,以便用在构建器中用构建器的自变量对其进行初始化。添加一个toString()方法以及一个concatenate()方法,令其将一个String对象追加到我们的内部字串。在myString中实现clone()。创建两个static方法,每个都取得一个myString x句柄作为自己的自变量,并调用x.concatenate("test")。但在第二个方法中,请首先调用clone()。测试这两个方法,观察它们不同的结果。
(2) 创建一个名为Battery(电池)的类,在其中包含一个int,用它表示电池的编号(采用独一无二的标识符的形式)。接下来,创建一个名为Toy的类,其中包含了一个Battery数组以及一个toString,用于打印出所有电池。为Toy写一个clone()方法,令其自动关闭所有Battery对象。克隆Toy并打印出结果,完成对它的测试。
(3) 修改CheckCloneable.java,使所有clone()方法都能捕获CloneNotSupportException违例,而不是把它直接传递给调用者。
(4) 修改Compete.java,为Thing2和Thing4类添加更多的成员对象,看看自己是否能判断计时随复杂性变化的规律——是一种简单的线性关系,还是看起来更加复杂。
(5) 从Snake.java开始,创建Snake的一个深层复制版本。

时间: 2024-09-20 12:58:30

java clone练习题的相关文章

深入浅出Java clone技术

这是clone技术介绍的第一篇.本篇主要介绍对象clone技术的基本知识. Clone基本知识储备在Java里提到clone技术,就不能不提java.lang.Cloneable接口和含有clone方法的Object类.所有具有clone功能的类都有一个特性,那就是它直接或间接地实现了Cloneable接口.否则,我们在尝试调用clone()方法时,将会触发CloneNotSupportedException异常.下面我们通过对Object类的部分源码的分析,来发现和理解这一特性.请看JDK中O

java clone学习总结

由于Java中的所有东西都是句柄,而且由于每个对象都是在内存堆中创建的--只有不再需要的时候,才会当作垃圾收集掉,所以对象的操作方式发生了变化,特别是在传递和返回对象的时候.举个例子来说,在C和C++中,如果想在一个方法里初始化一些存储空间,可能需要请求用户将那片存储区域的地址传递进入方法.否则就必须考虑由谁负责清除那片区域.因此,这些方法的接口和对它们的理解就显得要复杂一些.但在Java中,根本不必关心由谁负责清除,也不必关心在需要一个对象的时候它是否仍然存在.因为系统会为我们照料一切.我们的

Java clone()方法来由及用法

Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,特别是先学c.c++后学java的程序员.并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象.比如函数参数类型是自定义的类时,此时便是引用传递而不是值传递.以下是一个小例子: public class A { public String name; } public class testClone { public void chang

java IO练习题

(1) 打开一个文本文件,每次读取一行内容.将每行作为一个String读入,并将那个String对象置入一个Vector里.按相反的顺序打印出Vector中的所有行. (2) 修改练习1,使读取那个文件的名字作为一个命令行参数提供. (3) 修改练习2,又打开一个文本文件,以便将文字写入其中.将Vector中的行随同行号一起写入文件. (4) 修改练习2,强迫Vector中的所有行都变成大写形式,将结果发给System.out. (5) 修改练习2,在文件中查找指定的单词.打印出包含了欲找单词的

java线程练习题

(1) 从Thread继承一个类,并(过载)覆盖run()方法.在run()内,打印出一条消息,然后调用sleep().重复三遍这些操作,然后从run()返回.在构建器中放置一条启动消息,并覆盖finalize(),打印一条关闭消息.创建一个独立的线程类,使它在run()内调用System.gc()和System.runFinalization(),并打印一条消息,表明调用成功.创建这两种类型的几个线程,然后运行它们,看看会发生什么. (2) 修改Counter2.java,使线程成为一个内部类

JAVA基础练习题

问题描述 1.编写程序,实现在窗口中显示"HelloJAVA!",要求用两类Java程序编写并运行结果.2.编写程序,键盘输入两个数,计算并输出它们的积.3.编写程序,接受用户输入1-7之间的整数,若不符合条件则重新输入,利用swith语句输出星期几.4.编写程序,包括一个标签.一个文本框和一个按钮,当单击按钮时把文本框中的内容复制到标签中显示.请问这几道基础题怎么做? 解决方案 解决方案二:这样的题到网上随便搜搜都有答案吧解决方案三:又是一个新手,这种题目,你多看看书就回了解决方案四

Java Clone(类的复制)实例代码_java

自己实现了一遍: 复制代码 代码如下: public class A implements Cloneable {public String str[]; A() {str = new String[2];} public Object clone() {A o = null;try {o = (A) super.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();}o.str = new String[2];r

java类练习题

(1) 用public.private.protected以及"友好的"数据成员及方法成员创建一个类.创建属于这个类的一个对象,并观察在试图访问所有类成员时会获得哪种类型的编译器错误提示.注意同一个目录内的类属于"默认"包的一部分. (2) 用protected数据创建一个类.在相同的文件里创建第二个类,用一个方法操纵第一个类里的protected数据. (3) 新建一个目录,并编辑自己的CLASSPATH,以便包括那个新目录.将P.class文件复制到自己的新目录

java的clone实现

理解了实现clone()方法背后的所有细节后,便可创建出能方便复制的类,以便提供了一个本地副本:   //: LocalCopy.java // Creating local copies with clone() import java.util.*; class MyObject implements Cloneable { int i; MyObject(int ii) { i = ii; } public Object clone() { Object o = null; try { o