首页 > 代码库 > Java学习笔记-12.传递和返回对象
Java学习笔记-12.传递和返回对象
1.Clone()方法产生一个object,使用方法后必须产生的object赋值。
Vector v2 = (Vector)v.clone();
2.Clone()方法在object中是保护类型方法,如果自己创建的类需要使用Clone()方法的话需要自己重新写一个,并且继承Cloneable接口。
package tweleve;import java.util.*;class MyObject implements 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 = new MyObject(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 = new MyObject(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=new String("howdy"); System.out.println(qString); String qq=upcase(qString); System.out.println(qq); System.out.println(qString); }}
Java学习笔记-12.传递和返回对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。