logo

Обекти и класове в Java

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

На тази страница ще научим за обектите и класовете на Java. В техниката на обектно-ориентираното програмиране ние проектираме програма, използвайки обекти и класове.

Един обект в Java е физическа, както и логическа единица, докато класът в Java е само логическа единица.

Какво е обект в Java

обект в Java

Субект, който има състояние и поведение, е известен като обект, например стол, велосипед, маркер, химикал, маса, кола и т.н. Той може да бъде физически или логически (материален и нематериален). Пример за нематериален обект е банковата система.

Един обект има три характеристики:

    състояние:представлява данните (стойността) на обект.Поведение:представлява поведението (функционалността) на обект като депозит, теглене и др.Самоличност:Идентичността на обект обикновено се реализира чрез уникален идентификатор. Стойността на ID не се вижда от външния потребител. Въпреки това, той се използва вътрешно от JVM за уникално идентифициране на всеки обект.
Характеристики на обекта в Java

Например Pen е обект. Името му е Рейнолдс; цветът е бял, известен като неговото състояние. Използва се за писане, така че писането е неговото поведение.

Обектът е екземпляр на клас. Класът е шаблон или план, от който се създават обекти. И така, обектът е екземпляр (резултат) на клас.

Дефиниции на обекти:

  • Един обект е същност от реалния свят .
  • Един обект е обект по време на изпълнение .
  • Обектът е субект, който има състояние и поведение .
  • Обектът е екземпляр на клас .

Какво е клас в Java

Класът е група от обекти, които имат общи свойства. Това е шаблон или план, от който се създават обекти. Това е логическа единица. Не може да е физическо.

Клас в Java може да съдържа:

    Полета Методи Конструктори Блокове Вложен клас и интерфейс
Клас в Java

Синтаксис за деклариране на клас:

 class { field; method; } 

Променлива на екземпляр в Java

Променлива, която е създадена вътре в класа, но извън метода, е известна като променлива на екземпляр. Променливата на екземпляра не получава памет по време на компилиране. Той получава памет по време на изпълнение, когато се създава обект или екземпляр. Ето защо е известна като променлива на екземпляр.


Метод в Java

В Java методът е като функция, която се използва за излагане на поведението на обект.

Предимство на метода

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

нова ключова дума в Java

Ключовата дума new се използва за разпределяне на памет по време на изпълнение. Всички обекти получават памет в областта на паметта Heap.


Пример за обект и клас: основен в класа

В този пример създадохме клас Student, който има два члена с данни id и име. Създаваме обекта на класа 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() в друг клас.

остър ъгъл

Можем да имаме множество класове в различни 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.


Пример за обект и клас: Служител

Нека да видим пример, в който поддържаме записи на служители.

Файл: 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(); } } 
Тествайте сега

Изход:

 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){>