The objekt je osnovni građevni blok an OOPs Jezik. U Java , ne možemo izvršiti nijedan program bez stvaranja objekt . Postoje razni načini za stvoriti objekt u Javi o čemu ćemo raspravljati u ovom odjeljku, a također i naučiti kako stvoriti objekt u Javi.
Java pruža pet načina za stvaranje objekta.
- Korištenje novi Ključna riječ
- Korištenje klon() metoda
- Korištenje newInstance() metoda Klasa razreda
- Korištenje newInstance() metoda Konstruktor razreda
- Korištenje Deserijalizacija
Korištenje nove ključne riječi
Koristiti novi ključna riječ je najpopularniji način za stvaranje objekta ili instance klase. Kada stvorimo instancu klase pomoću ključne riječi new, ona dodjeljuje memoriju (hoplu) za novostvorenu objekt i također vraća referenca tog objekta u to sjećanje. Nova ključna riječ također se koristi za stvaranje niza. Sintaksa za stvaranje objekta je:
ClassName object = new ClassName();
Kreirajmo program koji koristi novu ključnu riječ za stvaranje objekta.
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(); } }
Izlaz:
Welcome to javaTpoint
Korištenjem nove ključne riječi također možemo pozvati konstruktor (zadani ili parametrirani) klase.
CreateObjectExample2.java
java programiranje prostih brojeva
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(); } }
Izlaz:
Welcome to javaTpoint
Korištenje metode clone().
The klon() metoda je metoda Objekt razreda. Stvara kopiju objekta i vraća istu kopiju. The JVM stvara novi objekt kada se pozove metoda clone(). Kopira sav sadržaj prethodno stvorenog objekta u novi objekt. Imajte na umu da ne poziva nikakav konstruktor. Moramo implementirati Može se klonirati sučelja dok koristite metodu clone(). Metoda baca CloneNotSupportedException iznimka ako klasa objekta ne podržava Cloneable sučelje. Potklase koje nadjačavaju metodu clone() mogu izbaciti iznimku ako se instanca ne može klonirati.
Napomena: Metoda stvara kopiju objekta, a ne novi objekt.
Sintaksa:
protected Object clone() throws CloneNotSupportedException
Koristimo sljedeću naredbu za stvaranje novog objekta.
ClassName newobject = (ClassName) oldobject.clone();
CreateObjectExample3.java
može li android igrati gamepigeon
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(); } } }
Izlaz:
New Object Created
Korištenje metode newInstance() klase klase
The newInstance() metoda klase Class također se koristi za stvaranje objekta. Poziva zadani konstruktor za stvaranje objekta. Vraća novostvorenu instancu klase koju predstavlja objekt. Interno koristi metodu newInstance() klase Constructor.
Sintaksa:
public T newInstance() throws InstantiationException, IllegalAccessException
To baca IllegalAccessException, InstantiationException, ExceptionInInitializerError iznimke.
Objekt možemo stvoriti na sljedeće načine:
ClassName object = ClassName.class.newInstance();
Ili
nedeterministički konačni automati
ClassName object = (ClassName) Class.forName('fully qualified name of the class').newInstance();
U gornjoj izjavi, zaIme() je statička metoda klase Class. Raščlanjuje parametar naziv klase tipa String. Vraća objekt za klasu s potpuno kvalificiranim imenom. Učitava klasu, ali ne stvara nikakav objekt. Baca se ClassNotFoundException ako se klasa ne može učitati i LinkageError ako veza ne uspije.
Za stvaranje objekta koristimo se newInstance() metoda klase Class. Radi samo kada znamo naziv klase i klasa ima javni zadani konstruktor.
U sljedećem programu stvaramo novi objekt pomoću metode 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(); } } }
Izlaz:
A new object created.
Korištenje metode newInstance() klase Constructor
Slično je newInstance() metoda Klasa razreda. Poznat je kao reflektirajući način stvaranja objekata. Metoda je definirana u Konstruktor klasa koja je klasa odjava.lang.reflectpaket. Također možemo pozvati parametrizirani konstruktor i privatni konstruktor pomoću newInstance() metoda. Općenito je preferirana u usporedbi s metodom newInstance() klase Class.
Sintaksa:
public T newInstance(Object... initargs) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException
Metoda analizira niz objekata kao argument. Vrijednosti primitivnih tipova omotane u omotač Objekt odgovarajućeg tipa. Vraća novi objekt stvoren pozivom konstruktora. Baca se IllegalAccessException, IllegalArgumentException, InstantiationException, InvocationTargetException, ExceptionInInitializerError Iznimke .
Objekt možemo kreirati na sljedeći način:
Constructor constructor = Employee.class.getConstructor(); Employee emp3 = constructor.newInstance();
Kreirajmo program koji stvara objekt pomoću metode newInstance().
CreateObjectExample5.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(); } } }
Izlaz:
JavaTpoint
Korištenje deserijalizacije
U Javi, serijalizacija je proces pretvaranja objekta u niz bajtova. Poziva se obrnuti proces (tok bajtova u objekt) od serijalizacije deserijalizacija . JVM stvara novi objekt kada serijaliziramo ili deserijaliziramo objekt. Ne koristi konstruktor za stvaranje objekta. Dok koristite deserijalizaciju, Serializable sučelje (sučelje markera) mora biti implementirano u klasi.
Serijalizacija: The writeObject() metoda ObjectOutputStream klasa se koristi za serijalizaciju objekta. Šalje objekt u izlazni tok.
Sintaksa:
public final void writeObject(object x) throws IOException
Deserijalizacija: Metoda readObject() od ObjectInputStream klasa se koristi za deserijalizaciju objekta. Referencira objekte iz toka.
Sintaksa:
Govinda glumac
public final Object readObject() throws IOException,ClassNotFoundException
Napomena: Neka polje bude statično ili prolazno ako ne želimo uključiti polje kao dio objekta. Neće biti uključen u proces serijalizacije.
Hajdemo razumjeti serijalizaciju i deserijalizaciju kroz program.
Zaposlenik.java
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; } }
Stvorili smo klasu pod nazivom Zaposlenik čiji objekt treba serijalizirati i deserijalizirati.
Serijalizacija Java objekta:
U sljedećem programu smo serijalizirali objekt klase Employee pomoću writeObject() metoda klase ObjectOutputStream. Stanje objekta sprema se u zaposlenik.txt datoteka.
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); } } }
Izlaz:
Successfully Created
Deserijalizacija Java objekta:
U sljedećem programu deserijalizirat ćemo objekt koji smo serijalizirali u gornjem programu.
DeserializationExample.java
kako preuzeti youtube video vlc
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); } } }
Izlaz:
198054 Andrew
U gornjih pet metoda primijetili smo da novi ključna riječ i oboje newInstance() metode koriste konstruktor za stvaranje objekata, dok preostale dvije metode ne koriste konstruktor.