付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026福建源昌实验幼儿园(南安六幼)招聘专任教师1人笔试备考题库及答案解析
- 2026年道真自治县中医院医护人员招聘笔试模拟试题及答案解析
- 六一儿童节主题教育
- 2026年巢湖市卫生健康系统事业单位人员招聘考试备考试题及答案详解
- 2026年迪庆市市场监督管理系统事业单位人员招聘考试备考试题及答案详解
- 2026广东江门鹤山市应急救援大队招聘4人考试备考题库及答案解析
- 2026北京市怀柔区卫生健康委员会所属事业单位第二批招聘额度管理人员34人笔试备考试题及答案详解
- 2026南平市、建阳区政务服务中心招聘综合窗口工作人员考试备考试题及答案解析
- 沈阳就业规划指导手册
- 2026江西抚州市立医院(江西省肿瘤医院抚州医院)招聘编外工作人员考试模拟试题及答案解析
- 化妆品赏析与应用学习通超星期末考试答案章节答案2024年
- 2024全国高中数学联赛山东赛区预赛试卷(含解析)
- 部编版八年级道德与法治上册第2单元《遵守社会规则》复习课件
- 筋膜刀的临床应用
- 人力资源外包投标方案
- 医院培训课件:《身份识别管理查房》
- MOOC 材料成形技术基础-西安交通大学 中国大学慕课答案
- 翻译服务劳务合同范本
- 成人癌性疼痛护理-中华护理学会团体标准2019
- 马原第七章共产主义崇高理想及其最终实现
- 培训testlab中文手册modal impact1 Test Lab模态锤击法软件布局
评论
0/150
提交评论