Klasser og objekter i Java

Klasser og objekter i Java

I Java danner klasser og objekter grunnlaget for objektorientert programmering (OOP). De hjelper til med å modellere virkelige enheter og organisere kode på en strukturert måte.

  • En klasse er en blåkopi som brukes til å lage objekter som deler felles egenskaper og oppførsel.
  • Et objekt er en forekomst av en klasse. Den representerer en spesifikk enhet opprettet fra klassemalen.

For eksempel er hund en klasse Tommy er et objekt av den klassen.

Class_Object_exampleKlasser og objekter (Her er hunden klassen og Bobby er objektet)

Java klasse

En klasse er en blåkopi som definerer data og atferd for objekter. Den grupperer relaterte felt og metoder i en enkelt enhet. Minne for medlemmene tildeles kun når et objekt er opprettet.

  • Fungerer som en mal for å lage objekter med delt struktur.
  • Opptar ikke minne for felt før instansiering.
  • Kan inneholde feltmetoder konstruktører nestede klasser og grensesnitt.
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  );      }   }   

Produksjon
10 Alice  

Java-objekter

Et objekt er en forekomst av en klasse opprettet for å få tilgang til data og operasjoner. Hvert objekt har sin egen tilstand.

  • Tilstand : Verdier lagret i felt.
  • Oppførsel : Handlinger definert gjennom metoder.
  • Identitet : Skiller ett objekt fra et annet.

Objekter speiler gjenstander fra den virkelige verden som kundeprodukt eller sirkel. Ikke-primitive objekter lagres på haugen mens referansene deres forblir på stabelen.

Objekter i JavaJava-objekter (eksempel på hunder)

Objektforekomst

Å lage et objekt er kjent som instansiering. Alle forekomster av en klasse deler struktur og atferd mens de lagrer forskjellige tilstandsverdier.

Erklære objekter i JavaJava-objekterklæring

Erklæring:

Hund tuffy;

Dette erklærer kun en referanse. Objektet er ikke opprettet og referansen har null.

Initialisering:

tuffy = new Dog('Tuffy' 'Papillon' 5 'White');

Klasser-og-objekter-i-java-3-768Initialisering

Den nye operatøren tildeler minne og påkaller konstruktøren.

Eksempel: Definere og bruke en klasse

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  );      }   }   

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

Note: Hver klasse har minst én konstruktør. Hvis ingen er definert, gir Java en standard no-argument-konstruktør som kaller den overordnede konstruktøren.

Initialiser objektet ved å bruke metode/funksjon

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  ();      }   }   

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

Måter å lage objekter i Java

Java støtter fire standardmetoder.

1. Bruke nytt nøkkelord

Den mest direkte måten å lage et objekt på.

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

2. Bruke Refleksjon

Brukes for dynamisk klasselasting som sett i rammeverk som 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  ();      }      }   }   

Produksjon
Student@1dbd16a6  

3. Bruke klone()-metoden

clone() lager en kopi av et eksisterende objekt. Klassen må implementere Cloneable.

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  ();      }      }   }   

Produksjon
GeeksForGeeks  

4. Bruke deserialisering

De-serialisering er en teknikk for å lese et objekt fra den lagrede tilstanden i en fil. Objektet gjenskapes fra en lagret bytestrøm.

Referer til Serialisering/de-serialisering i 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  ();     }      }   }   

Produksjon
Student: Alice  

En enkelt referanse kan peke til forskjellige objekter til forskjellige tider.

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

I arv er det vanlig å bruke en overordnet referanse for underordnede objekter.

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

Ikke-refererte objekter blir kvalifisert for søppelinnsamling.

Anonyme objekter

Anonyme objekter opprettes uten referanse og brukes umiddelbart til engangsoperasjoner.

  • Ingen referansevariabel: Kan ikke gjenbruke objektet.
  • Laget og brukt lagrer øyeblikkelig minne for kortvarige oppgaver.
  • Vanlig i hendelseshåndtering (f.eks. knappeklikk).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Vanlig i UI-hendelseshåndtering.

Lag quiz