Terkadang, Anda mungkin menemukan pertanyaan wawancara seperti:
Apa metode membuat objek di java?
Selain baru, apa cara lain untuk membuat objek di Java?
Artikel ini menggabungkan contoh untuk memberikan beberapa metode Java untuk membuat objek. Ini dia ~~~~
Buat dengan yang baru
Ini adalah yang paling umum digunakan. menyukai:
Buku buku = buku baru ();
Contohnya adalah sebagai berikut:
tes paket; import java.io.serializable; import java.util.list;/** * @author wangmengjun * */Buku kelas publik mengimplementasikan serializable {private static final long serialversionuid = -62124701566295515269l; / ** Judul Buku*/ Nama String Privat; / ** Penulis*/ Daftar Privat <String> Penulis; / ** ISBN*/ Private String ISBN; / ** Harga*/ harga pelampung pribadi; buku publik () {} / ** * @param nama * @param penulis * @param isbn * @param harga * / buku publik (nama string, daftar <string> penulis, string isbn, harga float) {this.name = name; this.authors = penulis; this.isbn = isbn; this.price = harga; } / ** * @return nama * / public string getName () {return name; } / ** * @param Nama Nama yang akan ditetapkan * / public void setName (nama string) {this.name = name; } / ** * @return Penulis * / Daftar Publik <String> getAuthors () {return penulis; } / ** * @param penulis penulis untuk mengatur * / public void setAuthors (Daftar <String> penulis) {this.authors = penulis; } / ** * @return The ISBN * / Public String getisbn () {return isbn; } / ** * @param isbn ISBN untuk mengatur * / public void setIsbn (String ISBN) {this.isbn = isbn; } / ** * @return harga * / public float getPrice () {harga kembali; } / ** * @param Harga harga yang akan ditetapkan * / public void setPrice (harga float) {this.price = harga; } / * (non-javadoc) * @see java.lang.object#toString () * / @Override public string toString () {return "book [name =" + name + ", penulis =" + penulis + ", isbn =" + isbn + ", harga =" + harga + "]"; }} / *** 1. Buat objek menggunakan buku baru*/ buku1 = buku baru (); book1.setname ("redis"); Book1.setAuthors (arrays.aslist ("Eric", "John")); Book1.SetPrice (59.00F); Book1.setisbn ("ABBBB-QQ67868686-HSDKHFKHKH-2324234"); System.out.println (Book1);Gunakan objek.clone ()
Jika Anda ingin memanggil metode klon, maka objek perlu mengimplementasikan antarmuka yang dapat dikloning dan mengganti metode klon ().
Kelas buku yang dimodifikasi adalah sebagai berikut:
tes paket; import java.io.serializable; import java.util.list;/** * @author wangmengjun * */buku kelas publik mengimplementasikan serializable, clonable {private static long serialversionuid = -62124701566629515269l; / ** Judul Buku*/ Nama String Privat; / ** Penulis*/ Daftar Privat <String> Penulis; / ** ISBN*/ Private String ISBN; / ** Harga*/ harga pelampung pribadi; buku publik () {} / ** * @param nama * @param penulis * @param isbn * @param harga * / buku publik (nama string, daftar <string> penulis, string isbn, harga float) {this.name = name; this.authors = penulis; this.isbn = isbn; this.price = harga; } / ** * @return nama * / public string getName () {return name; } / ** * @param Nama Nama yang akan ditetapkan * / public void setName (nama string) {this.name = name; } / ** * @return Penulis * / Daftar Publik <String> getAuthors () {return penulis; } / ** * @param penulis penulis untuk mengatur * / public void setAuthors (Daftar <String> penulis) {this.authors = penulis; } / ** * @return The ISBN * / Public String getisbn () {return isbn; } / ** * @param isbn ISBN untuk mengatur * / public void setIsbn (String ISBN) {this.isbn = isbn; } / ** * @return harga * / public float getPrice () {harga kembali; } / ** * @param Harga harga yang akan ditetapkan * / public void setPrice (harga float) {this.price = harga; } / * (non-javadoc) * @see java.lang.object#toString () * / @Override public string toString () {return "book [name =" + name + ", penulis =" + penulis + ", isbn =" + isbn + ", harga =" + harga + "]"; } @Override Object Object Clone () melempar clonenotsupportedException {return (book) super.clone (); }}Kode uji
/ *** 1. Buat objek menggunakan buku baru*/ buku1 = buku baru (); book1.setname ("redis"); Book1.setAuthors (arrays.aslist ("Eric", "John")); Book1.SetPrice (59.00F); Book1.setisbn ("ABBBB-QQ67868686-HSDKHFKHKH-2324234"); System.out.println (Book1); / *** 2. Buat objek menggunakan klon*/ coba {buku buku2 = (buku) book1.clone (); System.out.println (Book2); } catch (clonenotsupportedException e) {// todo auto-generated catch block e.printstacktrace (); }Gunakan class.newinstance ()
Ini dapat dilakukan secara langsung menggunakan metode class.forname ("xxx.xx"). NewInstance () atau xxx.class.newInstance ().
/*** 3. Gunakan class.newinstance (); */ coba {buku buku3 = (buku) class.forname ("test.book"). newInstance (); System.out.println (Book3); book3 = book.class.newinstance (); System.out.println (Book3); } Catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {// TODO TOPOO-ENTOO Catch Block E.PrintStackTrace (); }Gunakan contructor.newinstance ()
Anda dapat menentukan konstruktor untuk membuat, seperti memilih konstruktor pertama yang akan membuat; Anda juga dapat menentukan jenis parameter konstruktor untuk dibuat.
/*** 4. Gunakan konstruktor.newinstance (); */coba {// Pilih konstruktor pertama yang membuat buku buku buku4 = (buku) book.class.getConstructors () [0] .newInstance (); // Pesan [name = null, penulis = null, isbn = null, harga = 0,0] system.out.println (book4); / *** Hubungi konstruktor yang ditentukan untuk membuat objek*/ book4 = (book) book.class.getConstructor (string.class, list.class, string.class, float.class) .newinstance ("contoh baru", arrays.aslist ("wang", "eric"), "ABC1111111111111111111 (" wang "," eric ")," ABC111111111111111111111111111111111111 // Buku [name = contoh contoh baru, penulis = [wang, eric], isbn = abc11111111-def-33333, harga = 60.0] system.out.println (book4); } Catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | SecurityException | NosuchMethodeException e) {// TODO TOPO-Auto Catch Block E.PrintStackTrace (); }Menggunakan class.newinstance () atau contructor.newinstance () pada dasarnya sama, keduanya mengadopsi mekanisme refleksi.
Menggunakan deserialisasi
/ *** 5. Gunakan deserialization*/ try (objectOutputStream oos = new ObjectOutputStream (FileOutputStream baru ("book.dat")); ObjectInputStream ois = ObjectInputStream baru (FileInputStream ("book.dat"));) {oos.writeObject (book1); Buku buku5 = (buku) ois.readObject (); System.out.println (Book5); } catch (IoException | ClassNotFoundException e) {// TODO AUTO-AUTO-ENTOERATED Catch Block E.PrintStackTrace (); }Tentu saja, selain metode di atas, Anda juga dapat menggunakan JNI dan metode lain untuk membuat objek, jadi saya tidak akan mencantumkannya satu per satu.
Kode contoh lengkap adalah sebagai berikut:
Book.java
tes paket; import java.io.serializable; import java.util.list;/** * @author wangmengjun * */buku kelas publik mengimplementasikan serializable, clonable {private static long serialversionuid = -62124701566629515269l; / ** Judul Buku*/ Nama String Privat; / ** Penulis*/ Daftar Privat <String> Penulis; / ** ISBN*/ Private String ISBN; / ** Harga*/ harga pelampung pribadi; buku publik () {} / ** * @param nama * @param penulis * @param isbn * @param harga * / buku publik (nama string, daftar <string> penulis, string isbn, harga float) {this.name = name; this.authors = penulis; this.isbn = isbn; this.price = harga; } / ** * @return nama * / public string getName () {return name; } / ** * @param Nama Nama yang akan ditetapkan * / public void setName (nama string) {this.name = name; } / ** * @return Penulis * / Daftar Publik <String> getAuthors () {return penulis; } / ** * @param penulis penulis untuk mengatur * / public void setAuthors (Daftar <String> penulis) {this.authors = penulis; } / ** * @return The ISBN * / Public String getisbn () {return isbn; } / ** * @param isbn ISBN untuk mengatur * / public void setIsbn (String ISBN) {this.isbn = isbn; } / ** * @return harga * / public float getPrice () {harga kembali; } / ** * @param Harga harga yang akan ditetapkan * / public void setPrice (harga float) {this.price = harga; } / * (non-javadoc) * @see java.lang.object#toString () * / @Override public string toString () {return "book [name =" + name + ", penulis =" + penulis + ", isbn =" + isbn + ", harga =" + harga + "]"; } @Override Object Object Clone () melempar clonenotsupportedException {return (book) super.clone (); }}CreateObjectExample.java
Tes Paket; Impor java.io.fileInputStream; impor java.io.fileoutputStream; impor java.io.ioException; import java.io.objectInputStream; import java.oBjectOutputStream; impor java.lang.reflect.invocationTargetException; java.util.list;/*** @author wangmengjun**/kelas publik createObjectExample {public static void main (string [] args) {/*** 1. Buat objek menggunakan buku baru*/buku Book1 = new Book (); book1.setname ("redis"); Book1.setAuthors (arrays.aslist ("Eric", "John")); Book1.SetPrice (59.00F); Book1.setisbn ("ABBBB-QQ67868686-HSDKHFKHKH-2324234"); System.out.println (Book1); / *** 2. Buat objek menggunakan klon*/ coba {buku buku2 = (buku) book1.clone (); System.out.println (Book2); } catch (clonenotsupportedException e) {// todo auto-generated catch block e.printstacktrace (); } /*** 3. Gunakan class.newInstance (); */ coba {buku buku3 = (buku) class.forname ("test.book"). newInstance (); System.out.println (Book3); book3 = book.class.newinstance (); System.out.println (Book3); } Catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {// TODO TOPOO-ENTOO Catch Block E.PrintStackTrace (); } /*** 4. Gunakan konstruktor.newInstance (); */coba {// Pilih konstruktor pertama yang membuat buku buku buku4 = (buku) book.class.getConstructors () [0] .newInstance (); // Pesan [name = null, penulis = null, isbn = null, harga = 0,0] system.out.println (book4); / *** Hubungi konstruktor yang ditentukan untuk membuat objek*/ book4 = (book) book.class.getConstructor (string.class, list.class, string.class, float.class) .newinstance ("contoh baru", arrays.aslist ("wang", "eric"), "ABC1111111111111111111 (" wang "," eric ")," ABC111111111111111111111111111111111111 // Buku [name = contoh contoh baru, penulis = [wang, eric], isbn = abc111111-def-33333, harga = 60.0] system.out.println (book4); } Catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | SecurityException | NosuchMethodeException e) {// TODO TOPO-Auto Catch Block E.PrintStackTrace (); } / *** 5. Gunakan deserialization* / try (objectOutputStream oos = new ObjectOutputStream (FileOutputStream baru ("book.dat")); ObjectInputStream ois = ObjectInputStream (FileInputStream baru ("book.dat"));) {oos.writeObject (Book1); Buku buku5 = (buku) ois.readObject (); System.out.println (Book5); } catch (IoException | ClassNotFoundException e) {// TODO AUTO-AUTO-ENTOERATED Catch Block E.PrintStackTrace (); }}}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.