• 创建对象的三种方式


     创建对象的三种方式:
              1、new
            2、克隆----要实现Cloneable接口
            3、反序列化(前提:序列化存储)

     1、new

     1 package com.wisezone.test;
     2 /**
     3  * 创建对象的第一种方式:new
     4  * @author 王东海
     5  * @2017年4月15日
     6  */
     7 public class TestNew
     8 {
     9     public String name;
    10     public String pwd;
    11     public static void main(String[] args)
    12     {
    13         TestNew t1 = new TestNew();
    14         t1.name = "zs";
    15         t1.pwd = "123";
    16         System.out.println(t1.name);
    17         System.out.println(t1.pwd);
    18     }
    19 }

    2、克隆

     1 package com.wisezone.clone;
     2 
     3 /**
     4  * 空接口:
     5  *     标识,告诉JVM,通行
     6  * 1、克隆
     7  * 2、序列化
     8  * 
     9  *    创建对象的第二种方式:克隆clone,要实现Cloneable
    10  * @author 王东海
    11  * @2017年4月15日
    12  */
    13 public class TestClone implements Cloneable
    14 {
    15     public String name;
    16     
    17     public static void main(String[] args)
    18     {
    19         TestClone t1 = new TestClone();
    20         t1.name = "zs";
    21         System.out.println(t1.name);
    22         
    23         try
    24         {
    25             TestClone t2 =    (TestClone) t1.clone();
    26             t2.name = "ww";
    27             System.out.println(t2.name);
    28         } catch (CloneNotSupportedException e)
    29         {
    30             e.printStackTrace();
    31         }
    32     }
    33 }

    3、反序列化

      1 package com.wisezone.test;
      2 
      3 import java.io.FileInputStream;
      4 import java.io.FileOutputStream;
      5 import java.io.IOException;
      6 import java.io.ObjectInputStream;
      7 import java.io.ObjectOutputStream;
      8 import java.io.Serializable;
      9 import java.util.Arrays;
     10 import java.util.List;
     11 /**
     12  * 创建对象的第三种方式:使用反序列化
     13  * @author 王东海
     14  * @2017年4月15日
     15  */
     16 public class Book implements Serializable{
     17      
     18       private static final long serialVersionUID = -6212470156629515269L;
     19      
     20       /**书名*/
     21       private String name;
     22      
     23       /**作者*/
     24       private List<String> authors;
     25      
     26       /**ISBN*/
     27       private String isbn;
     28      
     29       /**价格*/
     30       private float price;
     31 
     32     public Book()
     33     {
     34         super();
     35         // TODO Auto-generated constructor stub
     36     }
     37 
     38     public String getName()
     39     {
     40         return name;
     41     }
     42 
     43     public void setName(String name)
     44     {
     45         this.name = name;
     46     }
     47 
     48     public List<String> getAuthors()
     49     {
     50         return authors;
     51     }
     52 
     53     public void setAuthors(List<String> authors)
     54     {
     55         this.authors = authors;
     56     }
     57 
     58     public String getIsbn()
     59     {
     60         return isbn;
     61     }
     62 
     63     public void setIsbn(String isbn)
     64     {
     65         this.isbn = isbn;
     66     }
     67 
     68     public float getPrice()
     69     {
     70         return price;
     71     }
     72 
     73     public void setPrice(float price)
     74     {
     75         this.price = price;
     76     }
     77 
     78     public static long getSerialversionuid()
     79     {
     80         return serialVersionUID;
     81     }
     82 
     83     @Override
     84     public String toString()
     85     {
     86         return "Book [name=" + name + ", authors=" + authors + ", isbn=" + isbn + ", price=" + price + "]";
     87     }
     88     
     89     public static void main(String[] args)
     90     {
     91         /**
     92          * 5. 使用反序列化
     93          */
     94         Book book1 = new Book();
     95         book1.setName("Redis");
     96         book1.setAuthors(Arrays.asList("Eric", "John"));
     97         book1.setPrice(59.00f);
     98         book1.setIsbn("ABBBB-QQ677868686-HSDKHFKHKH-2324234");
     99         System.out.println(book1);
    100         
    101         try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("book.dat"));
    102             ObjectInputStream ois = new ObjectInputStream(new FileInputStream("book.dat"));) {
    103           oos.writeObject(book1);
    104      
    105           Book book5 = (Book) ois.readObject();
    106           System.out.println(book5);
    107      
    108         } catch (IOException | ClassNotFoundException e) {
    109           e.printStackTrace();
    110         }
    111     }
    112      
    113     }
  • 相关阅读:
    Unity3D Asset文件导出3DMax 可编辑格式
    Android 内存管理
    常见面试之机器学习算法思想简单梳理
    最短的计算大数乘法的c程序
    MQTT---HiveMQ源代码具体解释(一)概览
    ZMQ源代码分析(一)-- 基础数据结构的实现
    JavaScript 性能分析新工具 OneProfile
    firefox关于about:config的常用配置
    postgres数据库中的数据转换
    postgres的强制类型转换与时间函数
  • 原文地址:https://www.cnblogs.com/wdh1995/p/6716347.html
Copyright © 2020-2023  润新知