成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java實(shí)例化類的方法

開發(fā) 后端
本文主要講解了Java實(shí)例化類的方法,總共通過四種途徑去實(shí)現(xiàn),具體請(qǐng)看下文

Java中,類的實(shí)例化方法有四種途徑:

1)使用new操作符

2)調(diào)用Class對(duì)象的newInstance()方法

3)調(diào)用clone()方法,對(duì)現(xiàn)有實(shí)例的拷貝

4)通過ObjectInputStream的readObject()方法反序列化類

1.ClassInstance.java

  1. import java.io.*;  
  2.    
  3.  class ClassInstance implements Cloneable, Serializable {  
  4.      private String str = "測(cè)試...";  
  5.      public void fun(){  
  6.          System.out.println(str);  
  7.      }  
  8.      public ClassInstance(String str){  
  9.          System.out.println("有參類的實(shí)例化");  
  10.          this.str += str;   
  11.      }  
  12.      public ClassInstance(){  
  13.          System.out.println("無(wú)參類的實(shí)例化");  
  14.      }  
  15.      public Object clone(){  
  16.          return this;  
  17.      }  
  18.  } 

2.ClassInstanceTest.java

  1. import java.io.*;  
  2.  import java.lang.reflect.*;  
  3.    
  4.  public class ClassInstanceTest{  
  5.      public static void main(String[] args) throws ClassNotFoundException, InstantiationException,  
  6.             IllegalAccessException, IOException,InvocationTargetException, NoSuchMethodException{  
  7.          //***種類的實(shí)例化方式  
  8.          ClassInstance ci01 = new ClassInstance("01");  
  9.          ci01.fun();  
  10.    
  11.          //第二種類的實(shí)例化方式  
  12.          ClassInstance ci02 = (ClassInstance) Class.forName("ClassInstance").newInstance();  
  13.          ci02.fun();  
  14.    
  15.          //第三種類的實(shí)例化方式  
  16.          ClassInstance ci03 = (ClassInstance) ci01.clone();  
  17.          ci03.fun();  
  18.    
  19.          //第四種類的實(shí)例化方式  
  20.          FileOutputStream fos = new FileOutputStream("ci.tmp");  
  21.          ObjectOutputStream oos = new ObjectOutputStream(fos);  
  22.          oos.writeObject(ci01);  
  23.          oos.close();  
  24.          fos.close();  
  25.            
  26.          FileInputStream fis = new FileInputStream("ci.tmp");  
  27.          ObjectInputStream ois = new ObjectInputStream(fis);  
  28.            
  29.          ClassInstance ci04  = (ClassInstance) ois.readObject();  
  30.          ois.close();  
  31.          fis.close();  
  32.            
  33.          ci04.fun();  
  34.          System.out.println("--------------------額外測(cè)試--------------------");  
  35.          ClassInstance ci05 = null;  
  36.          //額外的思考 在第二種類實(shí)例化的方式中有沒有一種方法實(shí)現(xiàn)有參數(shù)的構(gòu)造方式  
  37.          //獲得類的構(gòu)造信息  
  38.          Constructor[] ctor = Class.forName("ClassInstance").getDeclaredConstructors();  
  39.          //找到我們需要的構(gòu)造方法  
  40.          for(int i=0;i<ctor.length;i++ ){  
  41.              Class[] cl = ctor[i].getParameterTypes();  
  42.              if(cl.length == 1){  
  43.                  //實(shí)例化對(duì)象  
  44.                  ci05 = (ClassInstance) Class.forName("ClassInstance").getConstructor(cl).newInstance(new Object[]{"05"});  
  45.              }  
  46.          }  
  47.          ci05.fun();  
  48.      }  
  49.  } 

3.輸出結(jié)果

  1. 有參類的實(shí)例化  
  2.  測(cè)試...01  
  3.  無(wú)參類的實(shí)例化  
  4.  測(cè)試...  
  5.  測(cè)試...01  
  6.  測(cè)試...01  
  7.  -------------------額外測(cè)試--------------------  
  8.  有參類的實(shí)例化  
  9.  測(cè)試...05 

除了這幾種情況可以實(shí)例化一個(gè)Java類對(duì)象外,隱式調(diào)用實(shí)例化也是利用了已上集中情況。例如常見的方法:

  1. public class ClassInstance{  
  2.    public ClassInstance(){  
  3.    }  
  4.      public ClassInstance getInstance(){  
  5.      return new ClassInstance();  
  6.    }  
  7.  } 

通過觀察結(jié)果,我們發(fā)現(xiàn)無(wú)論哪一種方式必須經(jīng)過的一步---調(diào)用構(gòu)造方法。無(wú)論怎樣構(gòu)造函數(shù)作為初始化類的意義怎樣都不會(huì)改變。

原文鏈接:http://www.cnblogs.com/localhost/archive/2012/05/19/2508440.html

責(zé)任編輯:林師授 來(lái)源: 單騎的博客
相關(guān)推薦

2021-04-21 10:01:53

Python類方法靜態(tài)方法

2013-03-04 11:10:03

JavaJVM

2023-02-15 17:26:11

Java實(shí)例化系統(tǒng)

2009-07-10 09:30:41

SwingWorker

2024-05-20 09:26:42

Python裝飾器函數(shù)

2011-12-31 15:57:21

Java

2020-10-21 08:05:45

Scrapy

2021-01-11 05:25:51

抽象類對(duì)象應(yīng)用

2012-09-18 09:50:41

2012-05-23 12:46:53

JavaJava類

2010-08-13 09:35:08

C#靜態(tài)

2009-07-10 09:38:06

Java swing組

2021-05-31 07:40:48

函數(shù)實(shí)例化策略

2010-11-19 10:01:08

Oracle創(chuàng)建實(shí)例

2017-05-09 17:00:22

OpenStack暫停擱置

2009-07-06 16:59:16

Servlet方法

2009-07-02 13:18:53

JSP打印報(bào)表

2012-02-28 10:04:09

Java

2010-06-29 11:00:25

UML類圖實(shí)例

2011-06-02 14:51:07

JAVA修飾符
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 视频一区二区三区四区五区 | 国产精品69久久久久水密桃 | 97国产精品| 亚洲精品3 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 尤物在线视频 | 中文字幕欧美一区 | 欧美在线综合 | 欧美久久久网站 | www.夜夜骑| www成人免费 | 99热精品国产 | 亚洲免费精品 | 成人精品久久日伦片大全免费 | 欧美日韩三级视频 | 九色在线视频 | 一级网站 | 日本不卡视频在线播放 | 午夜av电影 | 91视频国产一区 | 免费视频二区 | 先锋影音资源网站 | 亚洲欧美激情四射 | 久久久亚洲成人 | 91精品在线播放 | 欧美一区二区三区久久精品 | 男女免费观看在线爽爽爽视频 | 日韩伦理一区二区三区 | 黄色网址av | 99久久精品视频免费 | 国产成人精品一区二区 | 亚洲精品免费视频 | 精品国产亚洲一区二区三区大结局 | 中文字幕在线观看国产 | 99成人 | 久久高清 | 天天天天操 | 在线观看国产三级 | 成人高清在线 | 亚洲不卡一| 久优草|