付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年世界无车日绿色出行课件
- 橡胶制品厂质量控制细则
- 某汽车制造厂生产流程管理规范
- 印刷厂生产安全操作规范
- 2027届陕西榆林市高三一模物理试题(含解析)
- 初二主题班会《谈早恋的危害》
- 华夏基石企业文化管理咨询
- 商场基层主管训练教材
- 唐氏综合症是人类最常见的一种染色体病
- 复旦大学股动力讲座股票分析与操盘手技能训练课程介绍
- T-CPI 11037-2024 石油天然气钻采设备水力振荡器技术与应用规范
- 冀教版四年级上册除法竖式计算题200道及答案
- JT∕T 1496-2024 公路隧道施工门禁系统技术要求
- 纳米纤维课件
- 2020风电场设备事故现场处置方案
- 2021废(污)水处理用复合碳源
- 混凝土及原材台账表格
- 架空导地线-液压压接(郭学闻)
- 技师培训交直流调速
- GB/T 9239.1-2006机械振动恒态(刚性)转子平衡品质要求第1部分:规范与平衡允差的检验
- 《绿色建筑概论》整套教学课件
评论
0/150
提交评论