自己 ots 返回 stringer integer print util solid
1.Clone() 方法产生一个 object,使用方法后必须产生的 object 赋值。
- Vector v2 = (Vector)v.clone();
2.Clone() 方法在 object 中是保护类型方法,如果自己创建的类需要使用 Clone() 方法的话需要自己重新写一个,并且继承 Cloneable 接口。
- package tweleve;
- importjava.util.*;
- classMyObjectimplements Cloneable {
- int i;
- MyObject(int ii) {
- i = ii;
- }
- public Object clone() {
- Object object =null;
- try {
- object =super.clone();
- } catch (CloneNotSupportedException e) {
- System.out.println("MyObject can't clone");
- }
- return object;
- }
- public String toString() {
- return Integer.toString(i);
- }
- }
- public class LocalCopy {
- static MyObject g(MyObject v) {
- v.i++;
- return v;
- }
- static MyObject f(MyObject v) {
- v = (MyObject) v.clone();
- v.i++;
- return v;
- }
- public static void main(String[] args) {
- MyObject aMyObject =newMyObject(11);
- MyObject bMyObject = g(aMyObject);
- if(aMyObject == bMyObject)
- System.out.println("a==b");
- else
- System.out.println("a!=b");
- System.out.println("a=" + aMyObject);
- System.out.println("b=" + bMyObject);
- MyObject cMyObject =newMyObject(31);
- MyObject dMyObject = f(cMyObject);
- if(cMyObject == dMyObject)
- System.out.println("c==d");
- else
- System.out.println("c!=d");
- System.out.println("c=" + cMyObject);
- System.out.println("d=" + dMyObject);
- }
- }
3. 如果希望一个类能够克隆那么需要有下列步骤:(1) 实现 Cloneable 接口
(2) 覆盖 Clone() 方法
(3) 在自己的 Clone() 方法中调用 super.clone()
(4) 在自己的 clone() 中捕获违例
4.String 类中所有能修改 String 的方法其实都创建和返回了一个新的 String 类,原来的 String 类是没有改变的,包括 + 和 +=,StringBuffer 比 String 操作字符串时更有效。
- package tweleve;
- import java.sql.Ref;
- import org.omg.CORBA.SystemException;
- public class Stringer {
- static String upcase(String s){
- return s.toUpperCase();
- }
- public static void main(String[] args){
- String qString=newString("howdy");
- System.out.println(qString);
- String qq=upcase(qString);
- System.out.println(qq);
- System.out.println(qString);
- }
- }
Java 学习笔记 - 12. 传递和返回对象
来源: http://www.bubuko.com/infodetail-2134559.html