4种创建对象的方法

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. public class Dog{  
  2.       
  3.     public Dog(){  
  4.         super();  
  5.     }  
  6.       
  7. }  

1、创建对象有什么难的,我们new一个就是的………………对,没错,这只是其中一种

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. Dog jack = new Dog();  

2、利用class的反射机制,该种方式适用于有无参构造方法的

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. Class dogClass = Dog.class//拿到class Dog的 Class实例对象  
  2. Dog rose = (Dog) dogClass.newInstance(); //调用Class的实例方法 newInstance()创建Dog的实例对象  


[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. Class dogClass = Class.forName("Dog");  
  2. Dog rose = (Dog) dogClass.newInstance();  

3、利用Java的对象,可序列化(对象在内存中的分配方式,在本地里保存一份一模一样的看,然后再取出来用,相当于把一个对象的状态完全保存住了,挺牛逼的啊,是不是游游戏里经常这么搞),利用封装类:ObjectOutputStream,ObjectInputStream。

前提:该类必须实现接口Serializable

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. public class CreateFour implements Serializable {  
  2.       
  3.     public static void main(String args[]) {  
  4.         CreateFour fCreateFour = new CreateFour();  
  5.         ObjectOutputStream objectStream;  
  6.         try {  
  7.             objectStream = new ObjectOutputStream(new FileOutputStream("res/obj.txt"));  
  8.             objectStream.writeObject(fCreateFour);  
  9.               
  10.             ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("res/obj.txt"));  
  11.             CreateFour cloneFour = (CreateFour) objectInputStream.readObject();  
  12.         } catch (FileNotFoundException e) {  
  13.             // TODO Auto-generated catch block  
  14.             e.printStackTrace();  
  15.         } catch (IOException e) {  
  16.             // TODO Auto-generated catch block  
  17.             e.printStackTrace();  
  18.         } catch (ClassNotFoundException e) {  
  19.             // TODO Auto-generated catch block  
  20.             e.printStackTrace();  
  21.         }  
  22.     }  
  23.       
  24. }  


4、利用Object下实例方法clone(),该类必须实现Cloneable接口,不然会抛出异常CloneNotSupportedException

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. public class CreateFour implements Cloneable {  
  2.       
  3.     public static void main(String args[]) {  
  4.         CreateFour f = new CreateFour();  
  5.         try {  
  6.             CreateFour cloneObject = (CreateFour) f.clone();  
  7.         } catch (CloneNotSupportedException e) {  
  8.             // TODO Auto-generated catch block  
  9.             e.printStackTrace();  
  10.         }  
  11.     }  
  12.       
  13. }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值