Тхе објекат је основни градивни блок једног ООПс Језик. Ин Јава , не можемо извршити ниједан програм без креирања објекат . Постоји разни начин да се створити ан објекат у Јави о чему ћемо разговарати у овом одељку, а такође и научити како направити објекат у Јави.
Јава пружа пет начина за креирање објекта.
- Користећи Нова Кључна реч
- Користећи клон () методом
- Користећи невИнстанце() методом Класа класа
- Користећи невИнстанце() методом Цонструцтор класа
- Користећи Десериализатион
Коришћење нове кључне речи
Помоћу Нова кључна реч је најпопуларнији начин за креирање објекта или инстанце класе. Када креирамо инстанцу класе користећи нову кључну реч, она додељује меморију (хап) за новостворену објекат а такође враћа референца тог предмета том сећању. Нова кључна реч се такође користи за креирање низа. Синтакса за креирање објекта је:
ClassName object = new ClassName();
Хајде да направимо програм који користи нову кључну реч за креирање објекта.
ЦреатеОбјецтЕкампле1.јава
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(); } }
Излаз:
Welcome to javaTpoint
Користећи нову кључну реч, такође можемо да позовемо конструктор (подразумевани или параметризовани) класе.
ЦреатеОбјецтЕкампле2.јава
унсигнед инт ц програмирање
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(); } }
Излаз:
Welcome to javaTpoint
Коришћење методе цлоне().
Тхе клон () метод је метод од Објекат класа. Прави копију објекта и враћа исту копију. Тхе ЈВМ креира нови објекат када се позове метода цлоне(). Копира сав садржај претходно креираног објекта у нови објекат. Имајте на уму да не позива ниједан конструктор. Морамо имплементирати Цлонеабле интерфејс док се користи метода цлоне(). Метода баца ЦлонеНотСуппортедЕкцептион изузетак ако класа објекта не подржава интерфејс за клонирање. Поткласе које замењују методу цлоне() могу да изазову изузетак ако инстанца не може да се клонира.
Напомена: Метод креира копију објекта, а не нови објекат.
Синтакса:
protected Object clone() throws CloneNotSupportedException
Користимо следећу изјаву да креирамо нови објекат.
ClassName newobject = (ClassName) oldobject.clone();
ЦреатеОбјецтЕкампле3.јава
миливецрицкет ин
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(); } } }
Излаз:
New Object Created
Коришћење невИнстанце() методе класе класе
Тхе невИнстанце() метода класе Цласс се такође користи за креирање објекта. Позива подразумевани конструктор да креира објекат. Враћа новокреирану инстанцу класе коју представља објекат. Интерно користи метод невИнстанце() класе Цонструцтор.
Синтакса:
public T newInstance() throws InstantiationException, IllegalAccessException
То баца ИллегалАццессЕкцептион, InstantiationException, ExceptionInInitializerError изузеци.
Објекат можемо да креирамо на следеће начине:
ClassName object = ClassName.class.newInstance();
Ор
ClassName object = (ClassName) Class.forName('fully qualified name of the class').newInstance();
У горњој изјави, заИме() је статична метода класе Цласс. Он анализира параметар Назив класе типа Стринг. Враћа објекат за класу са пуним именом. Учитава класу, али не ствара ниједан објекат. То баца ЦлассНотФоундЕкцептион ако се класа не може учитати и ЛинкагеЕррор ако веза не успе.
Да бисмо креирали објекат, користимо невИнстанце() метод класе Цласс. Ради само када знамо име класе и када класа има јавни подразумевани конструктор.
У следећем програму, креирали смо нови објекат користећи методу невИнстанце().
ЦреатеОбјецтЕкампле4.јава
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(); } } }
Излаз:
A new object created.
Коришћење методе невИнстанце() класе Конструктор
Слично је са невИнстанце() методом Класа класа. Познат је као рефлективни начин стварања објеката. Метод је дефинисан у Цонструцтор класа која је класа одјава.ланг.рефлецтпакет. Такође можемо позвати параметаризовани конструктор и приватни конструктор користећи невИнстанце() методом. Широко је пожељнији у поређењу са методом невИнстанце() класе Цласс.
индекоф јава
Синтакса:
public T newInstance(Object... initargs) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException
Метод анализира низ објеката као аргумент. Вредности примитивних типова умотане у омотач Објекат одговарајућег типа. Враћа нови објекат креиран позивањем конструктора. То баца ИллегалАццессЕкцептион, ИллегалАргументЕкцептион, ИнстантиатионЕкцептион, ИнвоцатионТаргетЕкцептион, ЕкцептионИнИнитиализерЕррор изузеци .
Објекат можемо креирати на следећи начин:
Constructor constructor = Employee.class.getConstructor(); Employee emp3 = constructor.newInstance();
Хајде да направимо програм који креира објекат користећи методу невИнстанце().
ЦреатеОбјецтЕкампле5.јава
прецртано маркдовн
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(); } } }
Излаз:
JavaTpoint
Коришћење десериализације
у Јави, серијализација је процес претварања објекта у низ бајтова. Позива се обрнути процес (бајт-ток у објекат) серијализације десеријализација . ЈВМ креира нови објекат када серијализује или десеријализује објекат. Не користи конструктор за креирање објекта. Док користите десериализацију, Сериализабле интерфејс (интерфејс маркера) мора бити имплементиран у класи.
серијализација: Тхе вритеОбјецт() методом ОбјецтОутпутСтреам класа се користи за серијализацију објекта. Шаље објекат у излазни ток.
Синтакса:
public final void writeObject(object x) throws IOException
Десеријализација: Метода реадОбјецт() оф ОбјецтИнпутСтреам класа се користи за десеријализацију објекта. Он упућује на објекте ван тока.
Синтакса:
public final Object readObject() throws IOException,ClassNotFoundException
Напомена: Учините поље статичним или пролазним ако не желимо да укључимо поље као део објекта. Неће се укључити у процес серијализације.
Хајде да разумемо серијализацију и десеријализацију кроз програм.
Емплоиее.јава
шта је велика и мала слова у скл-у
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; } }
Направили смо класу под називом Запослени чији објект треба да се серијализује и десеријализује.
Серијализација Јава објекта:
У следећем програму смо серијализовали објекат класе Емплоиее користећи вритеОбјецт() метод класе ОбјецтОутпутСтреам. Стање објекта се чува у запосленик.ткт фајл.
СериализатионЕкампле.јава
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); } } }
Излаз:
Successfully Created
Десеријализација Јава објекта:
У следећем програму ћемо десериализовати објекат који смо серијализовали у горњем програму.
ДесериализатионЕкампле.јава
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); } } }
Излаз:
198054 Andrew
У горњих пет метода, приметили смо да Нова кључна реч и обоје невИнстанце() методе користе конструктор за креирање објеката, док остале две методе не користе конструктор.