logo

Objecten en klassen in Java

  1. Object op Java
  2. Klasse op Java
  3. Instantievariabele in Java
  4. Werkwijze in Java
  5. Voorbeeld van object en klasse die de gegevens van studenten bijhoudt
  6. Anoniem voorwerp

Op deze pagina leren we over Java-objecten en -klassen. Bij de objectgeoriënteerde programmeertechniek ontwerpen we een programma met behulp van objecten en klassen.

Een object in Java is zowel de fysieke als een logische entiteit, terwijl een klasse in Java alleen een logische entiteit is.

Wat is een object op Java

object op Java

Een entiteit die een staat en gedrag vertoont, staat bekend als een object, bijvoorbeeld een stoel, fiets, stift, pen, tafel, auto, enz. Het kan fysiek of logisch (tastbaar en immaterieel) zijn. Het voorbeeld van een immaterieel object is het banksysteem.

Een object heeft drie kenmerken:

    Staat:vertegenwoordigt de gegevens (waarde) van een object.Gedrag:vertegenwoordigt het gedrag (functionaliteit) van een object zoals storten, opnemen, enz.Identiteit:Een objectidentiteit wordt doorgaans geïmplementeerd via een unieke ID. De waarde van het ID is niet zichtbaar voor de externe gebruiker. Het wordt echter intern door de JVM gebruikt om elk object uniek te identificeren.
Kenmerken van object op Java

Pen is bijvoorbeeld een object. De naam is Reynolds; de kleur is wit, bekend als de staat ervan. Het wordt gebruikt om te schrijven, dus schrijven is zijn gedrag.

Een object is een instantie van een klasse. Een klasse is een sjabloon of blauwdruk waaruit objecten worden gemaakt. Een object is dus de instantie (resultaat) van een klasse.

Objectdefinities:

  • Een voorwerp is een entiteit uit de echte wereld .
  • Een voorwerp is een runtime-entiteit .
  • Het voorwerp is een entiteit die staat en gedrag heeft .
  • Het voorwerp is een instantie van een klasse .

Wat is een klasse in Java

Een klasse is een groep objecten die gemeenschappelijke eigenschappen hebben. Het is een sjabloon of blauwdruk waaruit objecten worden gemaakt. Het is een logisch geheel. Het kan niet fysiek zijn.

Een klasse in Java kan het volgende bevatten:

    Velden Methoden Constructeurs Blokken Geneste klasse en interface
Klasse op Java

Syntaxis om een ​​klasse te declareren:

 class { field; method; } 

Instantievariabele in Java

Een variabele die binnen de klasse maar buiten de methode wordt gemaakt, staat bekend als een instantievariabele. De instancevariabele krijgt geen geheugen tijdens het compileren. Het krijgt geheugen tijdens runtime wanneer een object of exemplaar wordt gemaakt. Daarom staat het bekend als een instantievariabele.


Werkwijze in Java

In Java lijkt een methode op een functie die wordt gebruikt om het gedrag van een object bloot te leggen.

Voordeel van methode

  • Herbruikbaarheid van codes
  • Code-optimalisatie

nieuw trefwoord in Java

Het nieuwe sleutelwoord wordt gebruikt om geheugen tijdens runtime toe te wijzen. Alle objecten krijgen geheugen in het Heap-geheugengebied.


Object en klasse Voorbeeld: hoofd binnen de klasse

In dit voorbeeld hebben we een Student-klasse gemaakt met de ID en naam van twee gegevensleden. We maken het object van de klasse Student door een nieuw trefwoord te gebruiken en de waarde van het object af te drukken.

Hier maken we een main() -methode binnen de klasse.

Bestand: 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); } } 
Test het nu

Uitgang:

 0 null 

Object en klasse Voorbeeld: hoofd buiten de klasse

Bij real-time ontwikkeling maken we klassen en gebruiken deze vanuit een andere klasse. Het is een betere aanpak dan de vorige. Laten we een eenvoudig voorbeeld bekijken, waarbij we de methode main() in een andere klasse hebben.

miniwerkbalk Excel

We kunnen meerdere klassen hebben in verschillende Java-bestanden of in één Java-bestand. Als u meerdere klassen in één Java-bronbestand definieert, is het een goed idee om de bestandsnaam op te slaan met de klassenaam die de methode main() heeft.

Bestand: 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); } } 
Test het nu

Uitgang:

 0 null 

3 manieren om een ​​object te initialiseren

Er zijn 3 manieren om objecten in Java te initialiseren.

  1. Op referentievariabele
  2. Per methode
  3. Door constructeur

1) Voorbeeld van object en klasse: Initialisatie door middel van referentie

Het initialiseren van een object betekent het opslaan van gegevens in het object. Laten we een eenvoudig voorbeeld bekijken waarin we het object gaan initialiseren via een referentievariabele.

Bestand: 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 } } 
Test het nu

Uitgang:

 101 Sonoo 

We kunnen ook meerdere objecten maken en daarin informatie opslaan via een referentievariabele.

Bestand: 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); } } 
Test het nu

Uitgang:

 101 Sonoo 102 Amit 

2) Voorbeeld van object en klasse: initialisatie via methode

In dit voorbeeld maken we de twee objecten van de klasse Student en initialiseren we de waarde voor deze objecten door de methode insertRecord aan te roepen. Hier geven we de status (gegevens) van de objecten weer door de methode displayInformation() aan te roepen.

Bestand: 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(); } } 
Test het nu

Uitgang:

 111 Karan 222 Aryan 
Object in Java met waarden

Zoals je in de bovenstaande afbeelding kunt zien, krijgt het object het geheugen in het heap-geheugengebied. De referentievariabele verwijst naar het object dat is toegewezen in het heap-geheugengebied. Hier zijn s1 en s2 beide referentievariabelen die verwijzen naar de objecten die in het geheugen zijn toegewezen.


3) Voorbeeld van object en klasse: initialisatie via een constructor

We zullen later meer leren over constructors in Java.


Object en klasse Voorbeeld: Werknemer

Laten we een voorbeeld bekijken waarin we gegevens van werknemers bijhouden.

Bestand: 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(); } } 
Test het nu

Uitgang:

 101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0 

Object- en klassevoorbeeld: rechthoek

Er wordt nog een voorbeeld gegeven dat de records van de klasse Rectangle bijhoudt.

Bestand: 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(); } } 
Test het nu

Uitgang:

 55 45 

Wat zijn de verschillende manieren om een ​​object in Java te maken?

Er zijn veel manieren om een ​​object in Java te maken. Zij zijn:

lijst gesorteerde Java
  • Op nieuw trefwoord
  • Via de newInstance()-methode
  • Via de clone()-methode
  • Door deserialisatie
  • Volgens fabrieksmethode enz.

We zullen deze manieren om objecten te maken later leren.

Verschillende manieren om een ​​object in Java te maken

Anoniem voorwerp

Anoniem betekent simpelweg naamloos. Een object dat geen referentie heeft, staat bekend als een anoniem object. Het kan alleen worden gebruikt op het moment dat het object wordt gemaakt.

Als u een object slechts één keer hoeft te gebruiken, is een anoniem object een goede aanpak. Bijvoorbeeld:

 new Calculation();//anonymous object 

Aanroepmethode via een referentie:

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

Aanroepmethode via een anoniem object

 new Calculation().fact(5); 

Laten we het volledige voorbeeld bekijken van een anoniem object in 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++){>

Meerdere objecten maken van slechts één type

We kunnen slechts meerdere objecten van één type maken, zoals we doen in het geval van primitieven.

Initialisatie van primitieve variabelen:

 int a=10, b=20; 

Initialisatie van referentievariabelen:

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

Laten we het voorbeeld bekijken:

 //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(); } } 
Test het nu

Uitgang:

 55 45 

Voorbeeld uit de echte wereld: account

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