logo

Ako vytvoriť objekt v jazyku Java

The objekt je základným stavebným kameňom an OOPs Jazyk. In Java , nemôžeme spustiť žiadny program bez vytvorenia objekt . Existuje rôzny spôsob vytvoriť objekt v jazyku Java o ktorých budeme diskutovať v tejto časti a tiež sa naučíme ako vytvoriť objekt v jazyku Java.

Java poskytuje päť spôsobov, ako vytvoriť objekt.

  • Použitím Nový Kľúčové slovo
  • Použitím klon() metóda
  • Použitím newInstance() metóda Trieda trieda
  • Použitím newInstance() metóda Konštruktér trieda
  • Použitím Deserializácia

Použitie nového kľúčového slova

Pomocou Nový Kľúčové slovo je najobľúbenejší spôsob, ako vytvoriť objekt alebo inštanciu triedy. Keď vytvoríme inštanciu triedy pomocou kľúčového slova new, pridelí pamäť (hromadu) novovytvorenej triede objekt a tiež vráti odkaz toho predmetu k tej pamäti. Nové kľúčové slovo sa používa aj na vytvorenie poľa. Syntax na vytvorenie objektu je:

 ClassName object = new ClassName(); 

Vytvorme program, ktorý použije nové kľúčové slovo na vytvorenie objektu.

CreateObjectExample1.java

 public class CreateObjectExample1 { void show() { System.out.println('Welcome to javaTpoint'); } public static void main(String[] args) { //creating an object using new keyword CreateObjectExample1 obj = new CreateObjectExample1(); //invoking method using the object obj.show(); } } 

Výkon:

 Welcome to javaTpoint 

Použitím kľúčového slova new môžeme tiež vyvolať konštruktor (predvolený alebo parametrizovaný) triedy.

CreateObjectExample2.java

strojové učenie pod dohľadom
 public class CreateObjectExample2 { //constructor of the class CreateObjectExample2() { System.out.println('Welcome to javaTpoint'); } public static void main(String[] args) { //creating an object using new keyword CreateObjectExample2 obj = new CreateObjectExample2(); } } 

Výkon:

 Welcome to javaTpoint 

Použitie metódy clone().

The klon() metóda je metóda Objekt trieda. Vytvorí kópiu objektu a vráti rovnakú kópiu. The JVM pri vyvolaní metódy clone() vytvorí nový objekt. Skopíruje celý obsah predtým vytvoreného objektu do nového jedného objektu. Všimnite si, že nevolá žiadny konštruktor. Musíme implementovať Klonovateľné pri použití metódy clone(). Metóda hádže CloneNotSupportedException výnimka, ak trieda objektu nepodporuje klonovateľné rozhranie. Podtriedy, ktoré prepíšu metódu clone(), môžu vyvolať výnimku, ak inštanciu nemožno naklonovať.

Poznámka: Metóda vytvorí kópiu objektu, nie nový objekt.

Syntax:

 protected Object clone() throws CloneNotSupportedException 

Na vytvorenie nového objektu použijeme nasledujúci príkaz.

 ClassName newobject = (ClassName) oldobject.clone(); 

CreateObjectExample3.java

nepriehľadnosť prechodu css
 public class CreateObjectExample3 implements Cloneable { @Override protected Object clone() throws CloneNotSupportedException { //invokes the clone() method of the super class return super.clone(); } String str = 'New Object Created'; public static void main(String[] args) { //creating an object of the class CreateObjectExample3 obj1 = new CreateObjectExample3(); //try catch block to catch the exception thrown by the method try { //creating a new object of the obj1 suing the clone() method CreateObjectExample3 obj2 = (CreateObjectExample3) obj1.clone(); System.out.println(obj2.str); } catch (CloneNotSupportedException e) { e.printStackTrace(); } } } 

Výkon:

 New Object Created 

Použitie metódy newInstance() triedy Class

The newInstance() na vytvorenie objektu sa používa aj metóda triedy Class. Na vytvorenie objektu volá predvolený konštruktor. Vracia novovytvorenú inštanciu triedy reprezentovanej objektom. Interne používa metódu newInstance() triedy Constructor.

Syntax:

 public T newInstance() throws InstantiationException, IllegalAccessException 

To hádže IllegalAccessException, InstantiationException, ExceptionInInitializerError výnimky.

Objekt môžeme vytvoriť nasledujúcimi spôsobmi:

 ClassName object = ClassName.class.newInstance(); 

Alebo

 ClassName object = (ClassName) Class.forName('fully qualified name of the class').newInstance(); 

Vo vyššie uvedenom vyhlásení forName() je statická metóda triedy Class. Analyzuje parameter className typu String. Vráti objekt pre triedu s plne kvalifikovaným názvom. Načíta triedu, ale nevytvára žiadny objekt. To hádže ClassNotFoundException ak triedu nemožno načítať a LinkageError ak spojenie zlyhá.

Na vytvorenie objektu použijeme newInstance() metóda triedy Class. Funguje to len vtedy, keď poznáme názov triedy a trieda má verejný predvolený konštruktor.

V nasledujúcom programe sme pomocou metódy newInstance() vytvorili nový objekt.

CreateObjectExample4.java

 public class CreateObjectExample4 { void show() { System.out.println('A new object created.'); } public static void main(String[] args) { try { //creating an instance of Class class Class cls = Class.forName('CreateObjectExample4'); //creates an instance of the class using the newInstance() method CreateObjectExample4 obj = (CreateObjectExample4) cls.newInstance(); //invoking the show() method obj.show(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } } 

Výkon:

 A new object created. 

Použitie metódy newInstance() triedy Konštruktor

Je to podobné ako newInstance() metóda Trieda trieda. Je známy ako reflexný spôsob vytvárania predmetov. Metóda je definovaná v Konštruktér trieda, ktorá je triedoujava.lang.reflectbalík. Môžeme tiež zavolať parametrizovaný konštruktor a súkromný konštruktor pomocou newInstance() metóda. Je široko preferovaná v porovnaní s metódou newInstance() triedy Class.

vyhľadávanie bfs

Syntax:

 public T newInstance(Object... initargs) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException 

Metóda analyzuje pole objektov ako argument. Hodnoty primitívnych typov zabalené do obalu Objekt príslušného typu. Vracia nový objekt vytvorený volaním konštruktora. To hádže IllegalAccessException, IllegalArgumentException, InstantiationException, InvocationTargetException, ExceptionInInitializerError Exceptions .

Objekt môžeme vytvoriť nasledujúcim spôsobom:

 Constructor constructor = Employee.class.getConstructor(); Employee emp3 = constructor.newInstance(); 

Vytvorme program, ktorý vytvorí objekt pomocou metódy newInstance().

CreateObjectExample5.java

shloka mehta
 import java.lang.reflect.*; public class CreateObjectExample5 { private String str; CreateObjectExample5() { } public void setName(String str) { this.str = str; } public static void main(String[] args) { try { Constructor constructor = CreateObjectExample5.class.getDeclaredConstructor(); CreateObjectExample5 r = constructor.newInstance(); r.setName('JavaTpoint'); System.out.println(r.str); } catch (Exception e) { e.printStackTrace(); } } } 

Výkon:

 JavaTpoint 

Použitie deserializácie

v Jave serializácia je proces konverzie objektu na sekvenciu toku bajtov. Zavolá sa spätný proces (byte-stream to object) serializácie deserializácia . JVM vytvorí nový objekt, keď serializujeme alebo deserializujeme objekt. Na vytvorenie objektu nepoužíva konštruktor. Pri použití deserializácie, Serializovateľné rozhranie (marker interface) musí byť implementované v triede.

Ako vytvoriť objekt v jazyku Java

Serializácia: The writeObject() metóda ObjectOutputStream trieda sa používa na serializáciu objektu. Pošle objekt do výstupného toku.

Syntax:

 public final void writeObject(object x) throws IOException 

Deserializácia: Metóda readObject() z ObjectInputStream trieda sa používa na deserializáciu objektu. Odkazuje na objekty mimo prúdu.

Syntax:

 public final Object readObject() throws IOException,ClassNotFoundException 

Poznámka: Urobte pole statické alebo prechodné, ak nechceme zahrnúť pole ako súčasť objektu. Nebude zahrnuté do procesu serializácie.

Poďme pochopiť serializáciu a deserializáciu prostredníctvom programu.

Zamestnanec.java

0,04 ako zlomok
 import java.io.Serializable; public class Employee implements Serializable { int empid; String empname; public Empoyee(int empid, String empname) { this.empid = empid; this.empname = empname; } } 

Vytvorili sme triedu s názvom zamestnanec ktorých objekt má byť serializovaný a deserializovaný.

Serializácia Java Object:

V nasledujúcom programe sme serializovali objekt triedy Zamestnanec pomocou writeObject() metóda triedy ObjectOutputStream. Stav objektu sa uloží do zamestnanec.txt súbor.

SerializationExample.java

 import java.io.*; class SerializationExample { public static void main(String args[]) { Try { //Creating the object Employee emp = new Employee(198054,'Andrew'); //Creates a stream and writes the object FileOutputStream fout=new FileOutputStream('employee.txt'); ObjectOutputStream out=new ObjectOutputStream(employeeout); out.writeObject(emp); out.flush(); //closes the output stream out.close(); System.out.println('Successfully Created'); } catch(Exception e) { System.out.println(e); } } } 

Výkon:

 Successfully Created 

Deserializácia Java Object:

V nasledujúcom programe budeme deserializovať objekt, ktorý sme serializovali vo vyššie uvedenom programe.

DeserializationExample.java

 import java.io.*; class DeserializationExample { public static void main(String args[]) { try { //Creating a stream to read the object ObjectInputStream in=new ObjectInputStream(new FileInputStream('employee.txt')); Employee e=(Employee)in.readObject(); //prints the data of the serialized object System.out.println(e.empid+' '+e.empname); //closing the input stream in.close(); } catch(Exception e) { System.out.println(e); } } } 

Výkon:

 198054 Andrew 

Vo vyššie uvedených piatich metódach sme si všimli, že Nový kľúčové slovo a oboje newInstance() metódy používajú konštruktor na vytváranie objektov, zatiaľ čo ostatné dve metódy nepoužívajú konštruktor.