java中创建对象的5种方式

来源:互联网 发布:mac os x 10.8dmg 编辑:程序博客网 时间:2024/05/18 02:06

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;@Overridepublic 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()));}


运行效果


原创粉丝点击