java中创建对象的5种方式

java中创建对象的5种方式



复习复习java,准备换工作了~。

上代码


User实体类

/**   
 * @Title: User.java 
 * @date: 2017年8月7日 上午10:25:41 
 * @version: V1.0   
 */
package com.witc.base;

import java.io.Serializable;
import java.util.Date;

/** 
 * @ClassName: User 
 * @Description: TODO
 * @date: 2017年8月7日 上午10:25:41  
 */
public class User implements Cloneable,Serializable{
	
	private static final long serialVersionUID = 1050073612263237216L;
	
	private Date createTime;
	
	@Override
	public Object clone() {
		try {
			return super.clone();
		} catch (CloneNotSupportedException e) {
			e.printStackTrace();
			return null;
		}
	}

	public User(Date createTime) {
		super();
		this.createTime = createTime;
	}
	

	public User() {
		super();
	}

	/**
	 * @return the createTime
	 */
	public Date getCreateTime() {
		return createTime;
	}

	/**
	 * @param createTime the createTime to set
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	
}



	public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException, FileNotFoundException, IOException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		//1.通过new关键字新建对象,调用构造方法
		User user1 = new User();
		user1.setCreateTime(new Date());
		System.out.println("user1 createTime:"+sdf.format(user1.getCreateTime()));
		
		
		//2.使用Class类的newInstance方法,调用构造方法
		User user2 = (User) Class.forName("com.witc.base.User").newInstance();
		user2.setCreateTime(new Date());
		System.out.println("user2 createTime:"+sdf.format(user2.getCreateTime()));
		
		//3.使用Constructor类的newInstance方法,调用构造方法
		User user3 = User.class.newInstance();
		user3.setCreateTime(new Date());
		System.out.println("user3 createTime:"+sdf.format(user3.getCreateTime()));
		
		//4.使用clone方法,需要实现Cloneable接口
		User user = new User(new Date());
		User user4 = (User)user.clone();
		System.out.println("user4 createTime:"+sdf.format(user4.getCreateTime()));
		
		//5.使用反序列化,需要实现Serializable接口
		ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("C:/Users/Administrator/Desktop/User.txt"));
		out.writeObject(user4);
		out.close();
		
		ObjectInputStream in = new ObjectInputStream(new FileInputStream("C:/Users/Administrator/Desktop/User.txt"));
		User user5 = (User) in.readObject();
		in.close();
		user5.setCreateTime(new Date());
		System.out.println("user5 createTime:"+sdf.format(user4.getCreateTime()));
				
	}


运行效果


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值