JAvaオブジェクトの作成方法

7251 ワード

  • 最も簡単な方法はnewキーワードを使用して、構造関数
    package aa;
    
    public class CC {
    
    
        public CC() {
    
            // TODO Auto-generated constructor stub
            System.out.println("cc is created");
        }
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            CC cc = new CC();
        }
    
    }
    の試験結果を呼び出します:`cc is created
  • ClassクラスのnewInstanceメソッドを使用して、コンストラクタ
        package aa;
    
    public class CC {
    
    
        public CC() {
    
            // TODO Auto-generated constructor stub
            System.out.println("Class.forName()");
            System.out.println("cc is created");
        }
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            try {
                CC C = (CC)Class.forName("aa.CC").newInstance();
            } catch (InstantiationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    }
    
    を呼び出すテスト結果
    Class.forName()
    cc is created
    
  • ReflectパッケージのConstructorクラスのnewInstanceメソッドを使用して、コンストラクタ
    package aa;
    
    import java.lang.reflect.Constructor;
    import java.lang.reflect.InvocationTargetException;
    
    public class CC {
    
    
        public CC() {
    
            // TODO Auto-generated constructor stub
            System.out.println("constructor.newInstance()");
            System.out.println("cc is created");
        }
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
    
            try {
                Constructor constructor = CC.class.getConstructor();
                CC c = constructor.newInstance();
            } catch (NoSuchMethodException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SecurityException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (InstantiationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    }
    
    のテスト結果
    constructor.newInstance()
    cc is created
    
  • を呼び出す.
  • cloneメソッドを使用してオブジェクトを作成します.Cloneableインタフェースはフラグインタフェースです.Clonableインタフェースにはメソッド
    package aa;
    
    
    public class CC implements Cloneable {
    
    
        public CC() {
    
            // TODO Auto-generated constructor stub
            System.out.println("sss");
            System.out.println("cc is created");
        }
    
        @Override
        protected Object clone() throws CloneNotSupportedException {
            // TODO Auto-generated method stub
            CC  cc =null;
            cc = (CC) super.clone();
            return cc;
        }
    
        @SuppressWarnings("unused")
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            CC cc = new CC();
            try {
                CC cc2 = (CC) cc.clone();
            } catch (CloneNotSupportedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    }
    の試験結果がありません.
    sss
    cc is created
    
    の上のコンストラクション関数はnewの操作によって生成されます.cloneメソッドがコンストラクション関数
  • を呼び出していないことを示します.