Klassen en objecten in Java

Klassen en objecten in Java

In Java vormen klassen en objecten de basis van Object-Oriented Programming (OOP). Ze helpen bij het modelleren van entiteiten uit de echte wereld en het op een gestructureerde manier organiseren van code.

  • Een klasse is een blauwdruk die wordt gebruikt om objecten te maken die gemeenschappelijke eigenschappen en gedrag delen.
  • Een object is een instantie van een klasse. Het vertegenwoordigt een specifieke entiteit die is gemaakt op basis van de klassensjabloon.

Hond is bijvoorbeeld een klasse. Tommy is een object van die klasse.

Klasse_Object_voorbeeldKlassen en objecten (hier is hond de klasse en Bobby is object)

Java-klasse

Een klasse is een blauwdruk die gegevens en gedrag voor objecten definieert. Het groepeert gerelateerde velden en methoden in één eenheid. Geheugen voor zijn leden wordt alleen toegewezen wanneer een object wordt gemaakt.

  • Fungeert als sjabloon om objecten met een gedeelde structuur te maken.
  • Neemt geen geheugen in beslag voor velden tot instantiatie.
  • Kan velden, methoden, constructors, geneste klassen en interfaces bevatten.
Java
   class   Student     {      int     id  ;      String     n  ;      public     Student  (  int     id       String     n  )     {      this  .  id     =     id  ;      this  .  n     =     n  ;      }   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      Student     s1     =     new     Student  (  10       'Alice'  );      System  .  out  .  println  (  s1  .  id  );      System  .  out  .  println  (  s1  .  n  );      }   }   

Uitvoer
10 Alice  

Java-objecten

Een object is een instantie van een klasse die is gemaakt om toegang te krijgen tot de gegevens en bewerkingen ervan. Elk object heeft zijn eigen staat.

  • Staat : Waarden opgeslagen in velden.
  • Gedrag : Acties gedefinieerd via methoden.
  • Identiteit : Onderscheidt het ene object van het andere.

Objecten weerspiegelen items uit de echte wereld, zoals een klantproduct of een cirkel. Niet-primitieve objecten worden op de heap opgeslagen terwijl hun referenties op de stapel blijven staan.

Objecten op JavaJava-objecten (voorbeeld van honden)

Instantiatie van objecten

Het maken van een object staat bekend als instantiatie. Alle exemplaren van een klasse delen de structuur en het gedrag terwijl verschillende statuswaarden worden opgeslagen.

Objecten declareren in JavaJava-objectdeclaratie

Verklaring:

Hond tuffen;

Dit verklaart alleen een referentie. Het object is niet gemaakt en de verwijzing is null.

Initialisatie:

tuffy = nieuwe hond('Tuffy' 'Papillon' 5 'Wit');

Klassen-en-objecten-in-Java-3-768Initialisatie

De nieuwe operator wijst geheugen toe en roept de constructor aan.

Voorbeeld: een klasse definiëren en gebruiken

Java
   public     class   Dog     {      String     name  ;      String     breed  ;      int     age  ;      String     color  ;      public     Dog  (  String     name       String     breed       int     age       String     color  )     {      this  .  name     =     name  ;      this  .  breed     =     breed  ;      this  .  age     =     age  ;      this  .  color     =     color  ;      }      public     String     getName  ()     {     return     name  ;     }      public     String     getBreed  ()     {     return     breed  ;     }      public     int     getAge  ()     {     return     age  ;     }      public     String     getColor  ()     {     return     color  ;     }      @Override      public     String     toString  ()     {      return     'Name is: '     +     name      +     'nBreed age and color are: '      +     breed     +     ' '     +     age     +     ' '     +     color  ;      }      public     static     void     main  (  String  []     args  )     {      Dog     tuffy     =     new     Dog  (  'tuffy'       'papillon'       5       'white'  );      System  .  out  .  println  (  tuffy  );      }   }   

Uitvoer
Name is: tuffy Breed age and color are: papillon 5 white  

Opmerking: Elke klasse heeft minstens één constructor. Als er geen is gedefinieerd, biedt Java een standaardconstructor zonder argumenten die de bovenliggende constructor aanroept.

Initialiseer het object met behulp van Method/Function

Java
   public     class   Geeks     {      static     String     name  ;      static     float     price  ;      static     void     set  (  String     n       float     p  )     {      name     =     n  ;      price     =     p  ;      }      static     void     get  ()     {      System  .  out  .  println  (  'Software name is: '     +     name  );      System  .  out  .  println  (  'Software price is: '     +     price  );      }      public     static     void     main  (  String  []     args  )     {      Geeks  .  set  (  'Visual Studio'       0.0f  );      Geeks  .  get  ();      }   }   

Uitvoer
Software name is: Visual Studio Software price is: 0.0  

Manieren om objecten te maken in Java

Java ondersteunt vier standaardbenaderingen.

1. Nieuw trefwoord gebruiken

Meest directe manier om een ​​object te maken.

Java
   // creating object of class Test    Test     t     =     new     Test  ();   

2. Reflectie gebruiken

Gebruikt voor het dynamisch laden van klassen, zoals te zien in raamwerken zoals Spring.

Java
   class   Student     {      public     Student  ()     {}   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      try     {      Class        c     =     Class  .  forName  (  'Student'  );      Student     s     =     (  Student  )     c  .  getDeclaredConstructor  ().  newInstance  ();      System  .  out  .  println  (  s  );      }     catch     (  Exception     e  )     {      e  .  printStackTrace  ();      }      }   }   

Uitvoer
Student@1dbd16a6  

3. Gebruik de clone()-methode

clone() maakt een kopie van een bestaand object. De klasse moet Cloneable implementeren.

Java
   class   Geeks     implements     Cloneable     {      String     name     =     'GeeksForGeeks'  ;      @Override      protected     Object     clone  ()     throws     CloneNotSupportedException     {      return     super  .  clone  ();      }      public     static     void     main  (  String  []     args  )     {      try     {      Geeks     g1     =     new     Geeks  ();      Geeks     g2     =     (  Geeks  )     g1  .  clone  ();      System  .  out  .  println  (  g2  .  name  );      }     catch     (  Exception     e  )     {      e  .  printStackTrace  ();      }      }   }   

Uitvoer
GeeksForGeeks  

4. Deserialisatie gebruiken

De-serialisatie is een techniek om een ​​object te lezen vanuit de opgeslagen status in een bestand. Object wordt opnieuw gemaakt op basis van een opgeslagen bytestroom.

Raadpleeg Serialisatie/de-serialisatie in Java .

Java
   import     java.io.*  ;   class   Student     implements     Serializable     {      private     String     name  ;      public     Student  (  String     name  )     {     this  .  name     =     name  ;     }      public     String     toString  ()     {     return     'Student: '     +     name  ;     }   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      try     (  ObjectOutputStream     out     =      new     ObjectOutputStream  (  new     FileOutputStream  (  'student.ser'  )))     {      out  .  writeObject  (  new     Student  (  'Alice'  ));      }     catch     (  IOException     e  )     {     e  .  printStackTrace  ();     }      try     (  ObjectInputStream     in     =      new     ObjectInputStream  (  new     FileInputStream  (  'student.ser'  )))     {      Student     s     =     (  Student  )     in  .  readObject  ();      System  .  out  .  println  (  s  );      }     catch     (  Exception     e  )     {     e  .  printStackTrace  ();     }      }   }   

Uitvoer
Student: Alice  

Eén enkele verwijzing kan op verschillende tijdstippen naar verschillende objecten verwijzen.

Java
   Test     test     =     new     Test  ();   test     =     new     Test  ();   

Bij overerving is het gebruikelijk om een ​​ouderreferentie voor onderliggende objecten te gebruiken.

Java
   Animal     obj     =     new     Dog  ();   obj     =     new     Cat  ();   

Objecten zonder referenties komen in aanmerking voor garbagecollection.

Anonieme objecten

Anonieme objecten worden zonder referentie gemaakt en onmiddellijk gebruikt voor eenmalige bewerkingen.

  • Geen referentievariabele: kan het object niet hergebruiken.
  • Gemaakt en gebruikt bespaart onmiddellijk geheugen voor kortstondige taken.
  • Vaak bij het afhandelen van gebeurtenissen (bijvoorbeeld klikken op knoppen).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Gebruikelijk bij de afhandeling van UI-gebeurtenissen.

Quiz maken