💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 12.6 练习 (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`的一个深层复制版本。