Manchmal begegnen Sie Interviewfragen wie:
Was sind die Methoden zum Erstellen von Objekten in Java?
Was sind neben Neuen auch die anderen Möglichkeiten, Objekte in Java zu erstellen?
Dieser Artikel kombiniert Beispiele, um mehrere Java -Methoden zum Erstellen von Objekten zu geben. Hier gehen wir ~~~~
Mit neu erstellen
Dies ist das am häufigsten verwendete. wie:
Buchbuch = neues Buch ();
Beispiele sind wie folgt:
Pakettest; import Java.io.Serializable; Import Java.util.List;/** * @author Wangmengjun * */Public Class Book Implements Serializable {private statische endgültige lange Serialversionuid = -621247015629515269l; / ** Buchtitel*/ privater Zeichenfolge Name; / ** Autor*/ private Liste <string> Autoren; / ** isbn*/ private String isbn; / ** Preis*/ privater Schwimmerpreis; public book () {} / ** * @param name * @param Authors * @param isbn * @param price * / public book (String -Name, Liste <string> Autoren, String ISBN, Float Price) {this.name = name; this.authors = Autoren; this.isbn = isbn; this.price = Preis; } / ** * @return den Namen * / public String getName () {return name; } / ** * @param name den namens zu setzenden * / public void setName (String name) {this.name = name; } / ** * @return die Autoren * / publiclist <string> getAuthors () {return Authors; } / ** * @param Authors Die Autoren sollen * / public void setAuthors (Liste <string> Autoren) {this.authors = Authors; } / ** * @return die ISBN * / public String getisbn () {return isbn; } / ** * @param isbn der isbn zu set * / public void setisbn (string isbn) {this.isbn = isbn; } / ** * @return den Preis * / public float getPrice () {Return Price; } / ** * @param Preis Der Preis für ein SET * / public void setPrice (Float Price) {this.price = price; } / * (nicht-javadoc) * @see java.lang.object#toString () * / @Override public String toString () {return "book [name =" + name + ", Authors =" + Autoren + ", isbn =" + isbn + ", price =" + preis + "]"; }} / *** 1. Erstellen Sie ein Objekt mit neuem*/ book book = new Book (); Buch1.SetName ("Redis"); book1.setauthors (arrays.aslist ("eric", "John")); Buch1.SetPrice (59,00F); book1.setisbn ("ABBBB-QQ677868686-HSDKHFKHKH-2324234"); System.out.println (Buch1);Verwenden Sie Object.clone ()
Wenn Sie die Klonmethode aufrufen möchten, muss das Objekt die klonbare Schnittstelle implementieren und die Clone () -Methode überschreiben.
Die modifizierte Buchklasse lautet wie folgt:
Pakettest; importieren java.io.serializable; import Java.util.list;/** * @Author Wangmengjun * */public class Book implementiert serialisierbar, klonbar {private statische endgültige lange Serialversionuid = -621247015629515269l; / ** Buchtitel*/ privater Zeichenfolge Name; / ** Autor*/ private Liste <string> Autoren; / ** isbn*/ private String isbn; / ** Preis*/ privater Schwimmerpreis; public book () {} / ** * @param name * @param Authors * @param isbn * @param price * / public book (String -Name, Liste <string> Autoren, String ISBN, Float Price) {this.name = name; this.authors = Autoren; this.isbn = isbn; this.price = Preis; } / ** * @return den Namen * / public String getName () {return name; } / ** * @param name den namens zu setzenden * / public void setName (String name) {this.name = name; } / ** * @return die Autoren * / publiclist <string> getAuthors () {return Authors; } / ** * @param Authors Die Autoren sollen * / public void setAuthors (Liste <string> Autoren) {this.authors = Authors; } / ** * @return die ISBN * / public String getisbn () {return isbn; } / ** * @param isbn der isbn zu set * / public void setisbn (string isbn) {this.isbn = isbn; } / ** * @return den Preis * / public float getPrice () {Return Price; } / ** * @param Preis Der Preis für ein SET * / public void setPrice (Float Price) {this.price = price; } / * (nicht-javadoc) * @see java.lang.object#toString () * / @Override public String toString () {return "book [name =" + name + ", Authors =" + Autoren + ", isbn =" + isbn + ", price =" + preis + "]"; } @Override protected Object Clone () löst ClonenotsuptedEdException aus {return (book) super.clone (); }}Testcode
/ *** 1. Erstellen Sie ein Objekt mit neuem*/ book book = new Book (); Buch1.SetName ("Redis"); book1.setauthors (arrays.aslist ("eric", "John")); Buch1.SetPrice (59,00F); book1.setisbn ("ABBBB-QQ677868686-HSDKHFKHKH-2324234"); System.out.println (Buch1); / *** 2. erstellen Sie ein Objekt mit Clone*/ try {book book2 = (book) book1.clone (); System.out.println (Buch2); } catch (clonenotsuptedEdException e) {// Todo automatisch generierter Block E. printstacktrace (); }Verwenden Sie Class.Newinstance ()
Es kann direkt unter Verwendung der Klasse.forname ("xxx.xx"). NewInstance () -Methode oder xxx.class.newinstance () durchgeführt werden.
/*** 3. Verwenden Sie Class.Newinstance (); */ try {book book3 = (book) class.forname ("test.book"). newInstance (); System.out.println (Buch3); book3 = book.class.newinstance (); System.out.println (Buch3); } catch (InstantiationException | illegalAccessException | classNotFoundException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); }Verwendung von Conctortor.Newinstance ()
Sie können einen Konstruktor angeben, der erstellt wird, z. B. die Auswahl des ersten Konstruktors zum Erstellen. Sie können auch einen Konstruktorparameter -Typ angeben, um zu erstellen.
/*** 4. Verwenden Sie Constructor.Newinstance (); */try {// Wählen Sie den ersten Konstruktor zum Erstellen von Buchbuch book4 = (book) book // book [name = null, autors = null, isbn = null, price = 0,0] system.out.println (book4); / *** Rufen Sie den angegebenen Konstruktor an, um ein Objekt zu erstellen*/ book4 = (book) book // book [name = new Instance Beispiel, Autoren = [Wang, Eric], isbn = abc1111111-def-33333, price = 60.0] system.out.println (book4); } catch (InstantiationException | illegalAccessException | illegalArgumentException | InvocationTargetException | SecurityException | NoSuchMethodException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); }Die Verwendung von class.newinstance () oder kontroptor.newinstance () ist im Wesentlichen gleich, wobei beide den Reflexionsmechanismus übernehmen.
Verwenden von Deserialisierung
/ *** 5. Verwenden Sie Deserialization*/ try (ObjectOutputStream OOS = new ObjectOutputStream (new FileOutputStream ("book.dat"); ObjectInputStream OIS = new ObjectInputStream (new FileInputStream ("book.dat");) {OOS.WriteObject (book 1); Buchbuch5 = (Buch) ois.ReadObject (); System.out.println (Buch5); } catch (ioException | classNotFoundException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); }Natürlich können Sie zusätzlich zu den oben genannten Methoden auch JNI und andere Methoden verwenden, um Objekte zu erstellen, sodass ich sie nicht nacheinander aufliste.
Der vollständige Beispielcode lautet wie folgt:
Book.java
Pakettest; importieren java.io.serializable; import Java.util.list;/** * @Author Wangmengjun * */public class Book implementiert serialisierbar, klonbar {private statische endgültige lange Serialversionuid = -621247015629515269l; / ** Buchtitel*/ privater Zeichenfolge Name; / ** Autor*/ private Liste <string> Autoren; / ** isbn*/ private String isbn; / ** Preis*/ privater Schwimmerpreis; public book () {} / ** * @param name * @param Authors * @param isbn * @param price * / public book (String -Name, Liste <string> Autoren, String ISBN, Float Price) {this.name = name; this.authors = Autoren; this.isbn = isbn; this.price = Preis; } / ** * @return den Namen * / public String getName () {return name; } / ** * @param name den namens zu setzenden * / public void setName (String name) {this.name = name; } / ** * @return die Autoren * / publiclist <string> getAuthors () {return Authors; } / ** * @param Authors Die Autoren sollen * / public void setAuthors (Liste <string> Autoren) {this.authors = Authors; } / ** * @return die ISBN * / public String getisbn () {return isbn; } / ** * @param isbn der isbn zu set * / public void setisbn (string isbn) {this.isbn = isbn; } / ** * @return den Preis * / public float getPrice () {Return Price; } / ** * @param Preis Der Preis für ein SET * / public void setPrice (Float Price) {this.price = price; } / * (nicht-javadoc) * @see java.lang.object#toString () * / @Override public String toString () {return "book [name =" + name + ", Authors =" + Autoren + ", isbn =" + isbn + ", price =" + preis + "]"; } @Override protected Object Clone () löst ClonenotsuptedEdException aus {return (book) super.clone (); }}CreateObjectExample.java
Pakettest; import Java.io.FileInputStream; Import Java.io.FileOutputStream; Import Java.io.ioxception; Import Java.io.objectinputStream; Import Java.io.objectputStream; import Java.Lang.Reflect.invocentexception; @Author WangMengjun * */public class createObjectExample {public static void main (string [] args) {/** * 1. Erstellen Sie ein Objekt mit neuem */book book = new Book (); Buch1.SetName ("Redis"); book1.setauthors (arrays.aslist ("eric", "John")); Buch1.SetPrice (59,00F); book1.setisbn ("ABBBB-QQ677868686-HSDKHFKHKH-2324234"); System.out.println (Buch1); / *** 2. erstellen Sie ein Objekt mit Clone*/ try {book book2 = (book) book1.clone (); System.out.println (Buch2); } catch (clonenotsuptedEdException e) {// Todo automatisch generierter Block E. printstacktrace (); } /*** 3. verwenden class.newinstance (); */ try {book book3 = (book) class.forname ("test.book"). newInstance (); System.out.println (Buch3); book3 = book.class.newinstance (); System.out.println (Buch3); } catch (InstantiationException | illegalAccessException | classNotFoundException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); } /*** 4. Verwenden Sie Constructor.Newinstance (); */try {// Wählen Sie den ersten Konstruktor zum Erstellen von Buchbuch book4 = (book) book // book [name = null, autors = null, isbn = null, price = 0,0] system.out.println (book4); / *** Rufen Sie den angegebenen Konstruktor an, um ein Objekt zu erstellen*/ book4 = (book) book // book [name = new Instance Beispiel, Authors = [Wang, Eric], ISBN = ABC111111-DEF-33333, Preis = 60.0] System.out.println (book4); } catch (InstantiationException | illegalAccessException | illegalArgumentException | InvocationTargetException | SecurityException | NoSuchMethodException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); } / *** 5. Verwenden Sie die Deserialisierung* / try (ObjectOutputStream OOS = new ObjectOutputStream (new FileOutputStream ("book.dat"); ObjectInputStream OIS = new ObjectInputStream (new FileInputStream ("book.dat");) {OOS.WriteObject (Buch (Buch); Buchbuch5 = (Buch) ois.ReadObject (); System.out.println (Buch5); } catch (ioException | classNotFoundException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); }}}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.