java之对象克隆
2017-01-30 20:30
796 查看
package 克隆测试; public class 克隆 { static class Sj implements Cloneable { String ss; StringBuffer sss; int a; Integer aa; int aaa[] = new int[3]; public Sj clone() throws CloneNotSupportedException { Sj e; e = (Sj) super.clone(); e.aaa = this.aaa.clone(); return e; } } public static void main(String args[]) throws CloneNotSupportedException { Sj qq = new Sj(); qq.ss = new String("111"); qq.sss = new StringBuffer("1111"); qq.a = 3; qq.aa = new Integer(4); qq.aaa[1] = 44; Sj qqq = qq.clone(); qqq.ss = new String("222"); qqq.sss = new StringBuffer("2222"); qqq.a = 2; qqq.aa = new Integer(22); qqq.aaa[1] = 22; System.out.println(qq.ss); System.out.println(qq.sss); System.out.println(qq.a); System.out.println(qq.aa); System.out.println(qq.aaa[1]); } }
下面是运行结果:
111 1111 3 4 44
可以看出,int等基本类型,Integer等基本类型的封装,String和StringBuffer可以直接克隆
数组类型,集合类型,自定义类型需要继承Cloneable接口并重写clone()函数
并且int等基本类型,Integer等基本类型的封装,String和StringBuffer在函数传参过程中可以认为传递的是值
数组类型,集合类型,自定义类型在函数传参过程中可以当做是传递的是对象的引用
相关文章推荐
- javaweb中session的用法及相关应用
- MyEclipse 2016 Stable 1.0破解教程
- LintCode 152-组合 回溯法
- 如何用java来进行文件切割和简单的内容过滤
- 2017《JAVA技术》预备作业-计科1502-19-何俏依
- eclipse不自动弹出提示的解决办法(eclipse alt+/快捷键失效)
- 【Struts】——ActionForm
- 【Struts】——登录示例
- 【Struts】——工作流程
- 【Struts】——宏观了解与原理
- myeclipse hibernate反转引擎
- 设计模式(4) ------- 单例模式
- java中的静态变量和静态方法
- Spring注解的使用积累
- eclipse 配置黑色主题(转载)
- JAVA对xml文件的操作
- 通过Spring Data Neo4J操作您的图形数据库
- Java创建线程的三种方式
- spring boot 学习(九)小工具篇:?秒防刷新
- Java安全(四)-输入流的解密