- Објекат у Јави
- Час у Јави
- Променљива инстанце у Јави
- Метод у Јави
- Пример објекта и класе који води евиденцију ученика
- Анонимоус Објецт
На овој страници ћемо научити о Јава објектима и класама. У техници објектно оријентисаног програмирања дизајнирамо програм користећи објекте и класе.
Објекат у Јави је физички и логички ентитет, док је класа у Јави само логички ентитет.
Шта је објекат у Јави
Ентитет који има стање и понашање је познат као објекат, на пример, столица, бицикл, маркер, оловка, сто, аутомобил, итд. Може бити физички или логички (опипљив и нематеријалан). Пример нематеријалног објекта је банкарски систем.
Објекат има три карактеристике:
На пример, оловка је објекат. Његово име је Реинолдс; боја је бела, позната као њено стање. Користи се за писање, па је писање његово понашање.
Објекат је инстанца класе. Класа је шаблон или нацрт из којег се креирају објекти. Дакле, објекат је инстанца (резултат) класе.
Дефиниције објеката:
- Објекат је ентитет из стварног света .
- Објекат је ентитет за време извршавања .
- Објекат је ентитет који има стање и понашање .
- Објекат је инстанца класе .
Шта је класа у Јави
Класа је група објеката који имају заједничка својства. То је шаблон или нацрт из којег се креирају објекти. То је логичан ентитет. Не може бити физички.
Класа у Јави може да садржи:
Синтакса за декларисање класе:
class { field; method; }
Променљива инстанце у Јави
Променљива која је креирана унутар класе, али изван методе, позната је као променљива инстанце. Променљива инстанце не добија меморију у време компајлирања. Добија меморију током извршавања када се креира објекат или инстанца. Због тога је позната као променљива инстанце.
Метод у Јави
У Јави, метода је попут функције која се користи за откривање понашања објекта.
Предност методе
- Поновна употреба кода
- Оптимизација кода
нова кључна реч у Јави
Нова кључна реч се користи за доделу меморије током извршавања. Сви објекти добијају меморију у области меморије гомиле.
Пример објекта и класе: главни унутар класе
У овом примеру смо креирали класу ученика која има два члана података ид и име. Правимо објекат класе Студент помоћу нове кључне речи и штампамо вредност објекта.
Овде креирамо маин() метод унутар класе.
Фајл: Студент.јава
//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
Пример објекта и класе: главни ван класе
У развоју у реалном времену, ми креирамо класе и користимо их из друге класе. То је бољи приступ од претходног. Хајде да видимо једноставан пример, где имамо маин() метод у другој класи.
научи селен
Можемо имати више класа у различитим Јава датотекама или у једној Јава датотеци. Ако дефинишете више класа у једној Јава изворној датотеци, добра је идеја да сачувате име датотеке са именом класе која има метод маин().
Датотека: ТестСтудент1.јава
//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 начина за иницијализацију објекта у Јави.
- По референтној променљивој
- Методом
- По конструктору
1) Пример објекта и класе: Иницијализација путем референце
Иницијализација објекта значи чување података у објекту. Хајде да видимо једноставан пример где ћемо иницијализовати објекат преко референтне променљиве.
Датотека: ТестСтудент2.јава
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
Такође можемо креирати више објеката и складиштити информације у њима преко референтне променљиве.
Датотека: ТестСтудент3.јава
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) Пример објекта и класе: Иницијализација путем методе
У овом примеру креирамо два објекта класе Студент и иницијализујемо вредност ових објеката позивањем методе инсертРецорд. Овде приказујемо стање (податке) објеката позивањем методе дисплаиИнформатион().
Датотека: ТестСтудент4.јава
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
Као што можете видети на горњој слици, објекат добија меморију у области меморије гомиле. Референтна променљива се односи на објекат додељен у области меморије гомиле. Овде су и с1 и с2 референтне променљиве које се односе на објекте додељене у меморији.
3) Пример објекта и класе: Иницијализација преко конструктора
Касније ћемо научити о конструкторима у Јави.
Пример објекта и класе: Запослени
Погледајмо пример где водимо евиденцију запослених.
Датотека: ТестЕмплоиее.јава
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
Пример објекта и класе: Правоугаоник
Дат је још један пример који одржава записе класе Рецтангле.
8 до 1 мултиплексер
Датотека: ТестРецтангле1.јава
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
Који су различити начини за креирање објекта у Јави?
Постоји много начина да се направи објекат у Јави. Су:
- По новој кључној речи
- Методом невИнстанце().
- Методом цлоне().
- Десеријализацијом
- Фабричком методом итд.
Касније ћемо научити ове начине за креирање објеката.
Анонимни објекат
Анонимно једноставно значи безимени. Објекат који нема референцу познат је као анонимни објекат. Може се користити само у тренутку креирања објекта.
Ако морате да користите објекат само једном, анонимни објекат је добар приступ. На пример:
new Calculation();//anonymous object
Позивање методе преко референце:
Calculation c=new Calculation(); c.fact(5);
Позивање методе преко анонимног објекта
new Calculation().fact(5);
Хајде да видимо цео пример анонимног објекта у Јави.
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'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+' deposited'); } //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
Пример из стварног света: Рачун
Фајл: ТестАццоунт.јава
//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+' deposited'); } //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){>=n;i++){>