자바 에서 클래스 의 실례 화 방법
1) new 연산 자 사용
2) Class 대상 을 호출 하 는 new Instance () 방법
3) 클론 () 방법 을 호출 하여 기 존 인 스 턴 스 를 복사 합 니 다.
4) Object InputStream 의 readObject () 방법 을 통 해 역 직렬 화 클래스
1.ClassInstance.java
- 1 import java.io.*;
- 2
- 3 class ClassInstance implements Cloneable, Serializable {
- 4 private String str = " ...";
- 5 public void fun(){
- 6 System.out.println(str);
- 7 }
- 8 public ClassInstance(String str){
- 9 System.out.println(" ");
- 10 this.str += str;
- 11 }
- 12 public ClassInstance(){
- 13 System.out.println(" ");
- 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 //
- 8 ClassInstance ci01 = new ClassInstance("01");
- 9 ci01.fun();
- 10
- 11 //
- 12 ClassInstance ci02 = (ClassInstance) Class.forName("ClassInstance").newInstance();
- 13 ci02.fun();
- 14
- 15 //
- 16 ClassInstance ci03 = (ClassInstance) ci01.clone();
- 17 ci03.fun();
- 18
- 19 //
- 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("-------------------- --------------------");
- 35 ClassInstance ci05 = null;
- 36 //
- 37 //
- 38 Constructor[] ctor = Class.forName("ClassInstance").getDeclaredConstructors();
- 39 //
- 40 for(int i=0;i<ctor.length;i++ ){
- 41 Class[] cl = ctor[i].getParameterTypes();
- 42 if(cl.length == 1){
- 43 //
- 44 ci05 = (ClassInstance) Class.forName("ClassInstance").getConstructor(cl).newInstance(new Object[]{"05"});
- 45 }
- 46 }
- 47 ci05.fun();
- 48 }
- 49 }
3. 출력 결과
1 2 ...01
3 4 ... 5 ...01
6 ...01
7 ------------------- --------------------
8 9 ...05
이 몇 가지 상황 을 제외 하고 자바 류 대상 을 예화 할 수 있 는 것 을 제외 하고 암시 적 호출 예화 도 이미 집중 되 어 있 는 상황 을 이용 했다.예 를 들 어 흔히 볼 수 있 는 방법:
- 1 public class ClassInstance{
- 2 public ClassInstance(){
- 3 }
- 4 public ClassInstance getInstance(){
- 5 return new ClassInstance();
- 6 }
- 7 }
관찰 결 과 를 통 해 우 리 는 어떤 방식 이 든 반드시 거 쳐 야 하 는 단계 인 구조 방법 을 발견 했다.아무리 구조 함수 가 초기 화 류 로 서 의 의 미 는 변 하지 않 는 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 의 인 스 턴 스 는 무슨 뜻 입 니까?...에서 오다https://zhidao.baidu.com/question/582656655989089845.html 실례 가 대상 이다 인 스 턴 스 변수:이 클래스 로 대상 을 만 들 때 만 나타 나 고 할당 됩...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.