logo

Як створити об'єкт в Java

The об'єкт є основним будівельним блоком an ООП мова. в Java , ми не можемо виконати жодну програму без створення об'єкт . Є різні способи створити об'єкт в Java які ми обговоримо в цьому розділі, а також дізнаємося як створити об'єкт на Java.

Java надає п'ять способів створення об'єкта.

  • Використання новий Ключове слово
  • Використання клонувати() метод
  • Використання newInstance() метод Клас клас
  • Використання newInstance() метод Конструктор клас
  • Використання Десеріалізація

Використання нового ключового слова

Використовуючи новий Ключове слово є найпопулярнішим способом створення об'єкта або екземпляра класу. Коли ми створюємо екземпляр класу за допомогою ключового слова new, він виділяє пам’ять (купу) для новоствореного об'єкт а також повертає посилання цього об’єкта до цієї пам’яті. Ключове слово new також використовується для створення масиву. Синтаксис створення об’єкта:

 ClassName object = new ClassName(); 

Давайте створимо програму, яка використовує ключове слово new для створення об’єкта.

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(); } } 

Вихід:

 Welcome to javaTpoint 

Використовуючи ключове слово new, ми також можемо викликати конструктор (за замовчуванням або параметризований) класу.

CreateObjectExample2.java

карта проти набору
 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 

Використання методу clone().

The клонувати() метод є метод Об'єкт клас. Він створює копію об’єкта та повертає ту саму копію. The JVM створює новий об’єкт під час виклику методу clone(). Він копіює весь вміст раніше створеного об'єкта в новий об'єкт. Зверніть увагу, що він не викликає жодного конструктора. Ми повинні реалізувати Можливість клонування під час використання методу clone(). Метод кидків CloneNotSupportedException виняток, якщо клас об'єкта не підтримує інтерфейс Cloneable. Підкласи, які замінюють метод clone(), можуть викликати виняток, якщо екземпляр не можна клонувати.

Примітка. Метод створює копію об’єкта, а не новий об’єкт.

Синтаксис:

 protected Object clone() throws CloneNotSupportedException 

Ми використовуємо наступний оператор для створення нового об’єкта.

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

CreateObjectExample3.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(); } } } 

Вихід:

 New Object Created 

Використання методу newInstance() класу Class

The newInstance() метод класу Class також використовується для створення об'єкта. Він викликає конструктор за замовчуванням для створення об’єкта. Він повертає щойно створений екземпляр класу, представленого об’єктом. Він внутрішньо використовує метод newInstance() класу Constructor.

Синтаксис:

 public T newInstance() throws InstantiationException, IllegalAccessException 

Це кидає IllegalAccessException, InstantiationException, ExceptionInInitializerError винятки.

Ми можемо створити об’єкт такими способами:

 ClassName object = ClassName.class.newInstance(); 

Або

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

У наведеній вище заяві forName() є статичним методом класу Class. Він аналізує параметр className типу String. Він повертає об’єкт для класу з повним іменем. Він завантажує клас, але не створює жодного об’єкта. Це кидає ClassNotFoundException якщо клас не може бути завантажений і LinkageError якщо з’єднання виходить з ладу.

Щоб створити об’єкт, ми використовуємо newInstance() метод класу Class. Це працює лише тоді, коли ми знаємо ім’я класу і клас має загальнодоступний конструктор за замовчуванням.

У наступній програмі ми створюємо новий об’єкт за допомогою методу 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(); } } } 

Вихід:

 A new object created. 

Використання методу newInstance() класу Constructor

Це схоже на newInstance() метод Клас клас. Він відомий як рефлексивний спосіб створення об’єктів. Метод визначено в Конструктор клас, який є класомjava.lang.reflectпакет. Ми також можемо викликати параметризований конструктор і приватний конструктор за допомогою newInstance() метод. Його перевага надається переважно порівняно з методом newInstance() класу Class.

Синтаксис:

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

Метод аналізує масив об’єктів як аргумент. Значення примітивних типів загорнуті в обгортку Object відповідного типу. Він повертає новий об’єкт, створений викликом конструктора. Це кидає Винятки IllegalAccessException, IllegalArgumentException, InstantiationException, InvocationTargetException, ExceptionInInitializerError .

string.contains java

Ми можемо створити об'єкт наступним чином:

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

Давайте створимо програму, яка створює об’єкт за допомогою методу 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(); } } } 

Вихід:

такі сайти, як bedpage
 JavaTpoint 

Використання десеріалізації

На Java, серіалізація це процес перетворення об'єкта в послідовність потоку байтів. Викликається зворотний процес (від потоку байтів до об’єкта) серіалізації десеріалізація . JVM створює новий об’єкт, коли ми серіалізуємо або десеріалізуємо об’єкт. Він не використовує конструктор для створення об’єкта. Використовуючи десеріалізацію, Серіалізований інтерфейс (інтерфейс маркера) повинен бути реалізований у класі.

Як створити об'єкт в Java

Серіалізація: The writeObject() метод ObjectOutputStream клас використовується для серіалізації об'єкта. Він надсилає об’єкт у вихідний потік.

Синтаксис:

 public final void writeObject(object x) throws IOException 

Десеріалізація: Метод readObject() з ObjectInputStream клас використовується для десеріалізації об'єкта. Він посилається на об’єкти з потоку.

Синтаксис:

 public final Object readObject() throws IOException,ClassNotFoundException 

Примітка. Зробіть поле статичним або тимчасовим, якщо ми не хочемо включати поле як частину об’єкта. Це не буде включено в процес серіалізації.

Давайте розберемося з серіалізацією та десеріалізацією за допомогою програми.

Employee.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; } } 

Ми створили клас під назвою Співробітник чий об'єкт має бути серіалізований і десеріалізований.

java підключається до mysql

Серіалізація об'єкта Java:

У наступній програмі ми серіалізували об’єкт класу Employee за допомогою writeObject() метод класу ObjectOutputStream. Стан об'єкта зберігається в працівник.txt файл.

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); } } } 

Вихід:

 Successfully Created 

Десеріалізація об'єкта Java:

У наведеній нижче програмі ми збираємося десеріалізувати об’єкт, серіалізований у наведеній вище програмі.

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); } } } 

Вихід:

 198054 Andrew 

У наведених вище п’яти методах ми помітили, що новий ключове слово та обидва newInstance() Методи використовують конструктор для створення об’єктів, а решта два методи не використовують конструктор.