Java オブジェクトを作成する 5 つの方法、あなたはいくつ知っていますか?

「Java Architecture Stack」WeChat公式アカウントをフォローし、パスワード[Java InterviewQuestions]を返信すると、大手企業からの面接質問を入手できます

最近、友人が面接に行き、面接官から「Java でオブジェクトを作成する方法は何ですか?」という質問を受けました。当然のことながら、この小さな友人は新しい方法をすぐに言いましたが、面接官は他にどのような方法があるのか​​を尋ね続け、彼は分からないまま長い間躊躇していました。それで、この問題は難しいですか?今日は、Bo 兄弟が Java でオブジェクトを作成する方法を要約するためにここに来ました。

 オブジェクトの作成方法

1.新しいキーワード

誰もがこのメソッドに精通している必要があります。new キーワードを使用してオブジェクトを直接作成できます。このメソッドを通じて、パラメーターなしのコンストラクターまたはパラメーター化されたコンストラクターを呼び出すことができます。コード例は次のとおりです:

public class Test {
    public static void main(String[] args) {
        User user1 = new User();
        User user2 = new User("张三", "123456");
    }
 }

2. デシリアライゼーション

逆シリアル化してオブジェクトを作成したい場合は、まずオブジェクトをシリアル化する必要があります。では、シリアル化とは何でしょうか?端的に言えば、Java オブジェクトをバイト ストリームまたは文字ストリームに変換するプロセスです。逆シリアル化は、バイト ストリームまたは文字ストリーム オブジェクトを Java オブジェクトに変換するプロセスです。

次の図に示すように、シリアル化されていないファイルは空です。

public class Test {
    public static void main(String[] args) throws Exception {
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("D:\\Test\\userFile.txt"));
        User user = new User("张三","123456");
        objectOutputStream.writeObject(user);
        objectOutputStream.close();
    }
}

上記のコードを実行すると、userFile.txt に次の内容が表示されます。

この時点で、次のコードを再度実行すると、次のようになります。

public class Test {
    public static void main(String[] args) throws Exception {
        ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("D:\\Test01\\userFile.txt"));
        User user = (User) objectInputStream.readObject();
        System.out.println(user.username()+","+user.password());
        objectInputStream.close();
    }
}

次のコンテンツが得られます。

このことから、この User オブジェクトは前の userFile.txt ファイルから取得されたものであることがわかります。

3. newInstance メソッドを呼び出す

クラス class には newInstance メソッドがあり、クラス内の引数なしの public コンストラクターを呼び出します。このメソッドを使用してオブジェクトを作成する場合、コード例は次のようになります。

public class Test {
    public static void main(String[] args) throws Exception {
        User user = (User) Class.forName("User").newInstance();
    }
}

4.Constructor.newInstance

さらに、Constructor クラスには、オブジェクトの作成に役立つ newInstance メソッドもあります。このメソッドを通じて、パラメータ化された構築メソッドまたはプライベート構築メソッドを呼び出すことができます。サンプル コードは次のとおりです。

public class Test {
    public static void main(String[] args) throws Exception {
        Constructor<User> userConstructor = User.class.getConstructor();
        User user = userConstructor.newInstance();
    }
}

5. クローン方法

最後に、 clone() メソッドを使用して新しいオブジェクトを作成することもできます。ただし、このメソッドを使用するための前提条件は、まずクラスに Cloneable インターフェイスを実装させ、Object の clone メソッドを書き換える必要があることに注意する必要があります (Object のこのメソッドは保護されており、書き換えないと外部から呼び出すことができないため)。コード例は次のとおりです。

public class User  implements Cloneable{
    @Override
    public User clone() throws CloneNotSupportedException {
        return (User) super.clone();
   }
}

public class Test {
    public static void main(String[] args) throws Exception {
        User user1 = new User();
        User user2 = user1.clone();
    }
}

 結論

以上は、Bo 兄弟が友人たちに紹介した 5 つのオブジェクト作成方法ですが、Java オブジェクトを作成するにはどのような方法があるかご存知でしょうか? 将来、面接官が Java でオブジェクトを作成する方法を再度尋ねた場合は、これらの方法を伝えることができます。Java アーキテクチャ スタックに注目すると、毎日役立つ情報が得られます。

おすすめ

転載: blog.csdn.net/weixin_41692221/article/details/131415190