下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java中创立对象的四种方式1 .用new语句创立对象,这是最常见的创立对象的方法.2 .运用反射手段,调用 java.lang.Class 或者 java.lang.reflect.Constructor 类的 newInstance() 实例方法.3 .调用对象的clone()方法.4 .运用反序列化手段,调用 java.io.ObjectInputStream 对象的readObject() 方 法.以下是代码片段:package org.whb.test.demo724;/* 测试Cloneable 接口的使用* 包含第一种和第三种方法clone()* 不过要注意在clone()中深复
2、制和潜复制的理解*实例化对象*/class Person implements Cloneableprivate String name;private int age;public Person( String name,int age) = name;this.age = age; public int getAge() return age;public void setAge(int age) this.age = age;public String getName() return name;public void setName(String name) thi
3、 =name;Overridepublic Object clone() throws CloneNotSupportedException / TODO Auto-generated method stub return super.clone();)Overridepublic String toString() / TODO Auto-generated method stubreturn " 姓名是:"+name+"年龄是:"+age;)public class TestClonepublic static void main(Str
4、ing args)Person p1 = new Person(" 王豪博",25);System.out.println(p1);Person p2 =null;try p2 = (Person)p1.clone(); catch (CloneNotSupportedException e) / TODO Auto-generated catch block e.printStackTrace();p2.setName(" 春香");p2.setAge(24);System.out.println(p2);/* 通过反射对对象进行初始化* 注意必须有无
5、参数的Constructor* 实例化Class类然后调用newInstance() 方法* /package org.whb.test.demo715;class Person private int age; private String name; public int getAge() return age;public void setAge(int age) this.age = age;public String getName() return name;)public void setName(String name) = name;)public Str
6、ing toString()return "年龄是:"+this.age+" 姓名是:"+; )public class TestClass public static void main(String args) Class< ?> c1 = null;tryc1 = Class.forName("org.whb.test.demo715.Person"); catch(ClassNotFoundException e) e.printStackTrace(); Person p1 = null; tr
7、y p1 =(Person)c1.newInstance(); catch (InstantiationException e) / TODO Auto-generated catch block e.printStackTrace(); catch (IllegalAccessException e) / TODO Auto-generated catch block e.printStackTrace();p1.setAge(12);p1.setName("haobo");System.out.println(p1); package org.whb.test.demo
8、724;import java.io.*;import java.util.Date;/*对象的序列化和反序列化测试类*1、序列化是干什么的?简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存objectstates,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化.*2、什么情况下需要序列化a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;b)当你想用套接字在网络上传送对象的时候;c)当你想通过RMI传输对象的时候;*3、相关考前须知a)序列化时,只对对象的状
9、态进行保存,而不管对象的方法;b)当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable 接口 ;c)当一个对象的实例变量引用其他对象,序列化该对象时也把引用对象进行序列化;d)并非所有的对象都可以序列化,至于为什么不可以,有很多原因了,比方:1 .平安方面的原因,比方一个对象拥有private , public等field ,对于一个要传输的对象,比方写到文件,或者进行rmi传输 等等,在序列化进行传输的过程中,这个对象的private等域是不受保护的.2 .资源分配方面的原因,比方socket , thread 类,如果可以序列化,进行传输或者保存,也无法对他们进
10、行重新的资源分配,而且,也是没有必要这样实现.以下是代码片段:*/public class ObjectSaver public static void main(String口 args) throws Exception ObjectOutputStream out = new ObjectOutputStream (newFileOutputStream("D:/objectFile.swf");/序列化对象Customer customer = new Customer("haobo", 24);out.writeObject("你攵f
11、 !");out.writeObject(new Date();out.writeObject(customer);out.writeInt(123);/写入根本类型数据out.close();/反序列化对象ObjectInputStream in = new ObjectInputStream(newFileInputStream("D:/objectFile.swf");System.out.println("obj1=" + (String) in.readObject();System.out.println("obj2=&q
12、uot; + (Date) in.readObject();Customer obj3 = (Customer) in.readObject();System.out.println("obj3=" + obj3);int obj4 = in.readInt();System.out.println("obj4=" + obj4);in.close();class Customer implements Serializable /* */private static final long serialVersionUID = -88175599799432325L;private String name;private int age;public Customer(String name, int age)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年证券市场情绪分析与投资策略咨询合同3篇
- 二零二四年印刷品印刷合同范本:印刷品印刷协议9篇
- 2025年新能源汽车租赁与智能交通系统合作合同3篇
- 2025年度国际船舶租赁合同环境保护责任与履约评估3篇
- 二零二五版个人住房抵押贷款合同2篇
- 2025年度家具租赁服务合同标准文本4篇
- 2025年肉类加工企业鲜猪肉原料采购合同3篇
- 2025年度生态农业园区商铺租赁合同规范2篇
- 2024租赁公司设备租赁与购买合同
- 二零二五版高压电缆敷设电力施工劳务合同范本2篇
- 人口老龄化背景下居民养老金融资产配置影响因素研究
- 2024项目部安全管理人员安全培训考试题及参考答案(模拟题)
- 2025年中国文玩电商行业发展现状调查、竞争格局分析及未来前景预测报告
- 2024文旅古街元旦沉浸式体验国风游园会(古巷十二时辰主题)活动方案活动-46正式版
- (课件)-谈研究生培养
- 《disc性格分析》课件
- 2025年临床医师定期考核必考复习题库及答案(900题)
- 反恐应急预案3篇
- 英语-2025广西柳州高三二模试卷和答案
- 微更新视角下老旧社区公共空间适老化设计策略研究
- 电工中级工练习题库(含参考答案)
评论
0/150
提交评论