The objektu ir pamatelements an OOP valodu. In Java , mēs nevaram izpildīt nevienu programmu, neizveidojot objektu . Ir dažādi veidi, kā izveidot an objekts Java valodā ko mēs apspriedīsim šajā sadaļā, kā arī uzzināsim kā izveidot objektu Java.
Java nodrošina piecus veidus, kā izveidot objektu.
- Izmantojot jauns Atslēgvārds
- Izmantojot klons () metodi
- Izmantojot newInstance() metode Klase klasē
- Izmantojot newInstance() metode Konstruktors klasē
- Izmantojot Deserializācija
Jauna atslēgvārda izmantošana
Izmantojot jauns atslēgvārds ir vispopulārākais veids, kā izveidot klases objektu vai gadījumu. Kad mēs izveidojam klases gadījumu, izmantojot jauno atslēgvārdu, tas piešķir atmiņu (kaudzi) jaunizveidotajam objektu un arī atgriež atsauce no šī objekta šai atmiņai. Jaunais atslēgvārds tiek izmantots arī masīva izveidei. Objekta izveides sintakse ir:
ClassName object = new ClassName();
Izveidosim programmu, kas objekta izveidošanai izmanto jaunu atslēgvārdu.
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(); } }
Izvade:
Welcome to javaTpoint
Izmantojot jauno atslēgvārdu, mēs varam izsaukt arī klases konstruktoru (noklusējuma vai parametrizēto).
CreateObjectExample2.java
padarīt sh skriptu izpildāmu
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(); } }
Izvade:
Welcome to javaTpoint
Izmantojot klona() metodi
The klons () metode ir metode Objekts klasē. Tas izveido objekta kopiju un atgriež to pašu kopiju. The JVM izveido jaunu objektu, kad tiek izsaukta klona() metode. Tas kopē visu iepriekš izveidotā objekta saturu jaunā objektā. Ņemiet vērā, ka tas neizsauc nevienu konstruktoru. Mums ir jāīsteno Klonējams interfeisu, izmantojot klona () metodi. Metode met CloneNotSupportedException izņēmums, ja objekta klase neatbalsta Cloneable saskarni. Apakšklases, kas ignorē klona() metodi, var radīt izņēmumu, ja gadījumu nevar klonēt.
Piezīme. Metode izveido objekta kopiju, nevis jaunu objektu.
Sintakse:
protected Object clone() throws CloneNotSupportedException
Mēs izmantojam šādu paziņojumu, lai izveidotu jaunu objektu.
ClassName newobject = (ClassName) oldobject.clone();
CreateObjectExample3.java
pirmskaitlis Java
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(); } } }
Izvade:
New Object Created
Klases metodes newInstance() izmantošana
The newInstance() Objekta izveidošanai tiek izmantota arī klases klases metode. Tas izsauc noklusējuma konstruktoru, lai izveidotu objektu. Tas atgriež jaunizveidotu objekta pārstāvētās klases instanci. Tā iekšēji izmanto Constructor klases metodi newInstance().
Sintakse:
public T newInstance() throws InstantiationException, IllegalAccessException
Tas izmet IllegalAccessException, InstantiationException, ExceptionInInitializerError izņēmumi.
Mēs varam izveidot objektu šādos veidos:
ClassName object = ClassName.class.newInstance();
Or
ClassName object = (ClassName) Class.forName('fully qualified name of the class').newInstance();
Iepriekš minētajā paziņojumā forName() ir statiska klases klases metode. Tas parsē parametru klasesNosaukums tipa String. Tas atgriež klases objektu ar pilnībā kvalificētu nosaukumu. Tas ielādē klasi, bet nerada nevienu objektu. Tas met ClassNotFoundException ja klasi nevar ielādēt un Saiknes kļūda ja savienojums neizdodas.
Lai izveidotu objektu, mēs izmantojam newInstance() klases klases metode. Tas darbojas tikai tad, ja mēs zinām klases nosaukumu un klasei ir publisks noklusējuma konstruktors.
Nākamajā programmā mēs esam izveidojuši jaunu objektu, izmantojot metodi newInstance().
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(); } } }
Izvade:
A new object created.
Izmantojot Constructor klases metodi newInstance()
Tas ir līdzīgs newInstance() metode Klase klasē. Tas ir pazīstams kā atstarojošs veids, kā radīt objektus. Metode ir definēta Konstruktors klase, kuras klase irjava.lang.reflectiepakojums. Mēs varam arī izsaukt parametrizēto konstruktoru un privāto konstruktoru, izmantojot newInstance() metodi. Tā tiek plaši izmantota salīdzinājumā ar klases klases metodi newInstance().
kas ir alfabēta numurs
Sintakse:
public T newInstance(Object... initargs) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException
Metode parsē objektu masīvu kā argumentu. Primitīvo tipu vērtības, kas ietītas iesaiņojumā Atbilstošā tipa objekts. Tas atgriež jaunu objektu, kas izveidots, izsaucot konstruktoru. Tas met IllegalAccessException, IllegalArgumentException, InstantiationException, InvocationTargetException, ExceptionInitializerError Exceptions .
Mēs varam izveidot objektu šādā veidā:
Constructor constructor = Employee.class.getConstructor(); Employee emp3 = constructor.newInstance();
Izveidosim programmu, kas izveido objektu, izmantojot newInstance() metodi.
CreateObjectExample5.java
faktoriālā java
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(); } } }
Izvade:
JavaTpoint
Deserializācijas izmantošana
Java valodā, serializācija ir process, kurā objektu pārvērš baitu plūsmas secībā. Tiek izsaukts serializācijas apgrieztais process (no baitu plūsmas uz objektu). deserializācija . JVM izveido jaunu objektu, kad mēs serializējam vai deserializējam objektu. Objekta izveidošanai tas neizmanto konstruktoru. Lietojot deserializāciju, Serializējams klasē ir jārealizē interfeiss (marķiera interfeiss).
Serializācija: The writeObject() metode ObjectOutputStream klase tiek izmantota objekta serializēšanai. Tas nosūta objektu uz izvades straumi.
Sintakse:
public final void writeObject(object x) throws IOException
Deserializācija: Metode lasīt objektu () no ObjectInputStream klase tiek izmantota objekta deserializēšanai. Tas atsaucas uz objektiem ārpus straumes.
Sintakse:
public final Object readObject() throws IOException,ClassNotFoundException
Piezīme. Ja mēs nevēlamies iekļaut lauku kā objekta daļu, padariet iesniegto statisku vai pārejošu. Tas netiks iekļauts serializācijas procesā.
Izpratīsim serializāciju un deserializāciju, izmantojot programmu.
Darbinieks.java
kas ir Android Lieldienu ola
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; } }
Mēs esam izveidojuši klasi ar nosaukumu Darbinieks kuru objekts ir jāserializē un jādeserializē.
Java objekta serializācija:
Nākamajā programmā mēs esam serializējuši darbinieku klases objektu, izmantojot writeObject() ObjectOutputStream klases metodi. Objekta stāvoklis tiek saglabāts darbinieks.txt failu.
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); } } }
Izvade:
Successfully Created
Java objekta deserializācija:
Nākamajā programmā mēs deserializēsim objektu, kuru esam serializējuši iepriekš minētajā programmā.
DeserializācijaExample.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); } } }
Izvade:
198054 Andrew
Iepriekš minētajās piecās metodēs mēs esam pamanījuši, ka jauns atslēgvārds un abi newInstance() metodes izmanto konstruktoru, lai izveidotu objektus, bet pārējās divas metodes neizmanto konstruktoru.