logo

Об'єкти та класи в Java

  1. Об'єкт в Java
  2. Клас на Java
  3. Змінна екземпляра в Java
  4. Метод на Java
  5. Приклад об’єкта та класу, який зберігає записи студента
  6. Анонімний об'єкт

На цій сторінці ми дізнаємось про об’єкти та класи Java. У техніці об’єктно-орієнтованого програмування ми розробляємо програму за допомогою об’єктів і класів.

Об’єкт у Java є як фізичною, так і логічною сутністю, тоді як клас у Java є лише логічною сутністю.

Що таке об'єкт в Java

об'єкт в Java

Сутність, яка має стан і поведінку, відома як об’єкт, наприклад, стілець, велосипед, маркер, ручка, стіл, автомобіль тощо. Він може бути фізичним або логічним (матеріальним і нематеріальним). Прикладом нематеріального об'єкта є банківська система.

Об’єкт має три характеристики:

    штат:представляє дані (значення) об’єкта.Поведінка:представляє поведінку (функціональність) об’єкта, наприклад депозит, зняття тощо.Ідентичність:Ідентифікація об'єкта зазвичай реалізується через унікальний ідентифікатор. Значення ідентифікатора не видно зовнішньому користувачеві. Однак він використовується внутрішньо JVM для однозначної ідентифікації кожного об’єкта.
Характеристики Object в Java

Наприклад, Pen - це об'єкт. Його ім'я Рейнольдс; колір білий, відомий як його стан. Він використовується для запису, тому написання є його поведінкою.

Об’єкт – це екземпляр класу. Клас — це шаблон або проект, на основі якого створюються об’єкти. Отже, об’єкт – це екземпляр (результат) класу.

Визначення об'єктів:

  • Об'єкт є сутність реального світу .
  • Об'єкт є сутність часу виконання .
  • Об'єкт є суб'єкт, який має стан і поведінку .
  • Об'єкт є екземпляр класу .

Що таке клас в Java

Клас - це група об'єктів, які мають спільні властивості. Це шаблон або проект, на основі якого створюються об’єкти. Це логічна сутність. Це не може бути фізичним.

Клас у Java може містити:

    поля методи Конструктори Блоки Вкладений клас та інтерфейс
Клас на Java

Синтаксис для оголошення класу:

 class { field; method; } 

Змінна екземпляра в Java

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


Метод на Java

У Java метод подібний до функції, яка використовується для показу поведінки об’єкта.

Перевага методу

  • Повторне використання коду
  • Оптимізація коду

нове ключове слово в Java

Ключове слово new використовується для виділення пам'яті під час виконання. Усі об’єкти отримують пам’ять в області пам’яті Heap.


Приклад об’єкта та класу: головний у класі

У цьому прикладі ми створили клас Student, який має два члени даних id та name. Ми створюємо об’єкт класу Student за новим ключовим словом і друкуємо значення об’єкта.

Тут ми створюємо метод main() всередині класу.

Файл: Student.java

 //Java Program to illustrate how to define a class and fields //Defining a Student class. class Student{ //defining fields int id;//field or data member or instance variable String name; //creating main method inside the Student class public static void main(String args[]){ //Creating an object or instance Student s1=new Student();//creating an object of Student //Printing values of the object System.out.println(s1.id);//accessing member through reference variable System.out.println(s1.name); } } 
Перевірте зараз

Вихід:

 0 null 

Приклад об’єкта та класу: main поза класом

Під час розробки в реальному часі ми створюємо класи та використовуємо їх з іншого класу. Це кращий підхід, ніж попередній. Давайте розглянемо простий приклад, де ми маємо метод main() в іншому класі.

перетворення int в рядок

Ми можемо мати кілька класів у різних файлах Java або один файл Java. Якщо ви визначаєте кілька класів в одному вихідному файлі Java, доцільно зберегти назву файлу з іменем класу, який має метод main().

Файл: TestStudent1.java

 //Java Program to demonstrate having the main method in //another class //Creating Student class. class Student{ int id; String name; } //Creating another class TestStudent1 which contains the main method class TestStudent1{ public static void main(String args[]){ Student s1=new Student(); System.out.println(s1.id); System.out.println(s1.name); } } 
Перевірте зараз

Вихід:

 0 null 

3 способи ініціалізації об'єкта

Існує 3 способи ініціалізації об’єкта в Java.

  1. За посиланням на змінну
  2. За методом
  3. За конструктором

1) Приклад об’єкта та класу: ініціалізація через посилання

Ініціалізація об'єкта означає збереження даних в об'єкті. Давайте подивимося на простий приклад, де ми збираємося ініціалізувати об’єкт за допомогою змінної посилання.

Файл: TestStudent2.java

 class Student{ int id; String name; } class TestStudent2{ public static void main(String args[]){ Student s1=new Student(); s1.id=101; s1.name='Sonoo'; System.out.println(s1.id+' '+s1.name);//printing members with a white space } } 
Перевірте зараз

Вихід:

 101 Sonoo 

Ми також можемо створювати кілька об’єктів і зберігати в них інформацію за допомогою посилальної змінної.

Файл: TestStudent3.java

 class Student{ int id; String name; } class TestStudent3{ public static void main(String args[]){ //Creating objects Student s1=new Student(); Student s2=new Student(); //Initializing objects s1.id=101; s1.name='Sonoo'; s2.id=102; s2.name='Amit'; //Printing data System.out.println(s1.id+' '+s1.name); System.out.println(s2.id+' '+s2.name); } } 
Перевірте зараз

Вихід:

 101 Sonoo 102 Amit 

2) Приклад об’єкта та класу: ініціалізація через метод

У цьому прикладі ми створюємо два об’єкти класу Student та ініціалізуємо значення для цих об’єктів, викликаючи метод insertRecord. Тут ми відображаємо стан (дані) об’єктів, викликаючи метод displayInformation().

Файл: TestStudent4.java

 class Student{ int rollno; String name; void insertRecord(int r, String n){ rollno=r; name=n; } void displayInformation(){System.out.println(rollno+' '+name);} } class TestStudent4{ public static void main(String args[]){ Student s1=new Student(); Student s2=new Student(); s1.insertRecord(111,'Karan'); s2.insertRecord(222,'Aryan'); s1.displayInformation(); s2.displayInformation(); } } 
Перевірте зараз

Вихід:

 111 Karan 222 Aryan 
Об’єкт у Java зі значеннями

Як ви можете бачити на малюнку вище, об'єкт отримує пам'ять в області пам'яті купи. Посилальна змінна посилається на об’єкт, виділений в області пам’яті купи. Тут обидві s1 і s2 є посилальними змінними, які посилаються на об’єкти, виділені в пам’яті.


3) Приклад об’єкта та класу: ініціалізація через конструктор

Пізніше ми дізнаємося про конструктори в Java.


Приклад об’єкта та класу: Employee

Давайте розглянемо приклад, коли ми ведемо записи про працівників.

Файл: TestEmployee.java

 class Employee{ int id; String name; float salary; void insert(int i, String n, float s) { id=i; name=n; salary=s; } void display(){System.out.println(id+' '+name+' '+salary);} } public class TestEmployee { public static void main(String[] args) { Employee e1=new Employee(); Employee e2=new Employee(); Employee e3=new Employee(); e1.insert(101,'ajeet',45000); e2.insert(102,'irfan',25000); e3.insert(103,'nakul',55000); e1.display(); e2.display(); e3.display(); } } 
Перевірте зараз

Вихід:

 101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0 

Приклад об’єкта та класу: прямокутник

Наведено інший приклад, який підтримує записи класу Rectangle.

Файл: TestRectangle1.java

 class Rectangle{ int length; int width; void insert(int l, int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle1{ public static void main(String args[]){ Rectangle r1=new Rectangle(); Rectangle r2=new Rectangle(); r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } 
Перевірте зараз

Вихід:

 55 45 

Які є різні способи створення об’єкта в Java?

Є багато способів створити об’єкт у java. Вони є:

  • За новим ключовим словом
  • Методом newInstance().
  • Методом clone().
  • Шляхом десеріалізації
  • Заводським способом і т.д.

Пізніше ми навчимося цим способам створення об’єктів.

Різні способи створення об’єкта в Java

Анонімний об'єкт

Анонім просто означає безіменний. Об'єкт, який не має посилання, відомий як анонімний об'єкт. Його можна використовувати лише під час створення об’єкта.

Якщо вам потрібно використати об’єкт лише один раз, анонімний об’єкт буде хорошим підходом. Наприклад:

 new Calculation();//anonymous object 

Спосіб виклику через посилання:

 Calculation c=new Calculation(); c.fact(5); 

Виклик методу через анонімний об'єкт

 new Calculation().fact(5); 

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

 class Calculation{ void fact(int n){ int fact=1; for(int i=1;i<=n;i++){ fact="fact*i;" } system.out.println('factorial is '+fact); public static void main(string args[]){ new calculation().fact(5); calling method with anonymous object < pre> <p>Output:</p> <pre> Factorial is 120 </pre> <a id="objectbyonetype"></a> <h3>Creating multiple objects by one type only</h3> <p>We can create multiple objects by one type only as we do in case of primitives.</p> <p>Initialization of primitive variables:</p> <pre> int a=10, b=20; </pre> <p>Initialization of refernce variables:</p> <pre> Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects </pre> <p>Let&apos;s see the example:</p> <pre> //Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } </pre> <span> Test it Now </span> <p>Output:</p> <pre> 55 45 </pre> <h3>Real World Example: Account</h3> <p>File: TestAccount.java</p> <pre> //Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+&apos; deposited&apos;); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println('insufficient balance'); }else{ amount="amount-amt;" system.out.println(amt+' withdrawn'); } method to check the balance of account void checkbalance(){system.out.println('balance is: '+amount);} display values an object display(){system.out.println(acc_no+' '+name+' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,'ankit',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){></pre></=n;i++){>

Створення кількох об'єктів тільки одного типу

Ми можемо створювати декілька об’єктів тільки одного типу, як це робимо у випадку з примітивами.

Ініціалізація примітивних змінних:

 int a=10, b=20; 

Ініціалізація посилальних змінних:

 Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects 

Давайте розглянемо приклад:

 //Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } 
Перевірте зараз

Вихід:

підручник hadoop
 55 45 

Приклад реального світу: обліковий запис

Файл: TestAccount.java

 //Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+&apos; deposited&apos;); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println(\'insufficient balance\'); }else{ amount="amount-amt;" system.out.println(amt+\' withdrawn\'); } method to check the balance of account void checkbalance(){system.out.println(\'balance is: \'+amount);} display values an object display(){system.out.println(acc_no+\' \'+name+\' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,\'ankit\',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){>