Java中创建对象的四种方式

转载自:http://ncs123.iteye.com/blog/1775661

Java中创建对象的四种方式

  (1) 用new语句创建对象,这是最常见的创建对象的方法。
  (2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
  (3) 调用对象的clone()方法。
  (4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。


一.用new语句创建对象

User user = new User()

二.运用反射手段
  (1)调用java.lang.Class.newInstance()

Class.forName(classname).newInstance()
Wife wife = (Wife) Class.forName("com.java.clone.Wife").newInstance();


  (2)调用java.lang.reflect.Constructor类的newInstance()

Constructor<Wife> constructor = Wife.class.getDeclaredConstructor(int.class,String.class);
Wife wife = (Wife) constructor.newInstance(1,"nihao");

三.调用对象的clone()方法
详情参考:http://ncs123.iteye.com/blog/1775631

Wife wife = new Wife(1,"wang");
Wife wife2 = null;
wife2 = (Wife) wife.clone();//运用clone()方法产生新对象
四.运用反序列化手段
被序列化的对象必须implements Serializable

public class BeanUtil {

	@SuppressWarnings("unchecked")
	public static <T> T cloneTo(T src) throws RuntimeException {
		ByteArrayOutputStream memoryBuffer = new ByteArrayOutputStream();
		ObjectOutputStream out = null;
		ObjectInputStream in = null;
		T dist = null;

		try {
			out = new ObjectOutputStream(memoryBuffer);
			out.writeObject(src);
			out.flush();
			in = new ObjectInputStream(new ByteArrayInputStream(
					memoryBuffer.toByteArray()));
			dist = (T) in.readObject();

		} catch (Exception e) {
			throw new RuntimeException(e);
		} finally {
			if (out != null)
				try {
					out.close();
					out = null;
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			if (in != null)
				try {
					in.close();
					in = null;
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
		}

		return dist;
	}

	public static void main(String[] args){
		Husband husband = new Husband(1);
		Wife wife = new Wife(1,"jin");
		husband.setWife(wife);
		Husband husband2 = cloneTo(husband);//运用反序列生成了一个对象
	}
}



《HTT电脑秘书软件》是一个小巧实用的工具,通过它可以方便地打开您常用的程序、文档资料、以及网站链接等。《HTT电脑秘书软件》 的最大好处,莫过于它的易用性。当然,它还有许多特点: 1、极其简单的打开/隐藏方式:鼠标移向屏幕右下角,《HTT电脑秘书软件》 主窗口马上打开;鼠标移向屏幕右边界下方,主窗口立即消失,移到右边界上方,主窗口立即显示。也可以通过单击右下角的本系统图标进行打开和隐藏。 2、允许对程序项进行分门别类,用户可建立任意树形目录结构,并提供两种目录显示方式。 3、可以对《HTT电脑秘书软件》的任何程序文档等项目定义系统级热键,无论《HTT电脑秘书软件》是否在前台,均可捕获热键。 4、有自启动功能,每次进入Windows后,《HTT电脑秘书软件》 以小图标方式显示在任务条上的通知区。 5、支持OLE拖放功能,您可将任意文件或IE/Netscape的超链接拖入《HTT电脑秘书软件》。 6、提供多种小巧实用的工具,如日程记事、HTT文档编辑器,HTT图片编辑器、Office文档编辑器等,并允许以插件方式加以扩充。 7、可以通过拖放方式,将你的系统的所有文件添加到【文档库】节点(该节点对应本系统所在路径下的文件夹),将你系统的所有文件进行集管理。 《HTT电脑秘书软件》 的插件编程接口: 如果你需要给本系统编写插件,请与我们公司联系。 E-mail: htt@huitetong.com WWW: http://www.huitetong.com Tel: 010-82896850 13801355031 作者:赵宝泽
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值