Klasser og objekter i Java

Klasser og objekter i Java

I Java danner klasser og objekter grundlaget for objektorienteret programmering (OOP). De hjælper med at modellere virkelige enheder og organisere kode på en struktureret måde.

  • En klasse er en plan, der bruges til at skabe objekter, der deler fælles egenskaber og adfærd.
  • Et objekt er en instans af en klasse. Den repræsenterer en specifik enhed, der er oprettet ud fra klasseskabelonen.

For eksempel er hund en klasse, Tommy er et objekt i den klasse.

Klasse_objekt_eksempelKlasser og objekter (Her er hund klassen og Bobby er objekt)

Java klasse

En klasse er en blueprint, der definerer data og adfærd for objekter. Den grupperer relaterede felter og metoder i en enkelt enhed. Hukommelse til dets medlemmer tildeles kun, når et objekt er oprettet.

  • Fungerer som en skabelon til at skabe objekter med delt struktur.
  • Optager ikke hukommelse for felter indtil instansiering.
  • Kan indeholde felter metoder konstruktører indlejrede klasser og grænseflader.
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  );      }   }   

Produktion
10 Alice  

Java objekter

Et objekt er en forekomst af en klasse, der er oprettet for at få adgang til dets data og operationer. Hvert objekt har sin egen tilstand.

  • Tilstand : Værdier gemt i felter.
  • Opførsel : Handlinger defineret gennem metoder.
  • Identitet : Adskiller et objekt fra et andet.

Objekter afspejler genstande fra den virkelige verden, såsom kundeprodukt eller cirkel. Ikke-primitive objekter gemmes på heapen, mens deres referencer forbliver på stakken.

Objekter i JavaJava-objekter (eksempel på hunde)

Objekt Instantiation

Oprettelse af et objekt er kendt som instansiering. Alle forekomster af en klasse deler struktur og adfærd, mens de lagrer forskellige tilstandsværdier.

Erklæring af objekter i JavaJava-objekterklæring

Erklæring:

Hund tuffy;

Dette erklærer kun en reference. Objektet er ikke oprettet, og referencen har null.

Initialisering:

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

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

Den nye operatør tildeler hukommelse og kalder konstruktøren.

Eksempel: Definition og brug af 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  );      }   }   

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

Note: Hver klasse har mindst én konstruktør. Hvis ingen er defineret, leverer Java en standard no-argument constructor, der kalder den overordnede constructor.

Initialiser objekt ved hjælp af metode/funktion

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

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

Måder at oprette objekter i Java

Java understøtter fire standardtilgange.

1. Brug af nyt søgeord

Den mest direkte måde at skabe et objekt på.

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

2. Brug af refleksion

Bruges til dynamisk klasseindlæsning som set i rammer 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  ();      }      }   }   

Produktion
Student@1dbd16a6  

3. Brug af clone() metode

clone() opretter en kopi af et eksisterende objekt. Klassen skal 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  ();      }      }   }   

Produktion
GeeksForGeeks  

4. Brug af deserialisering

De-serialisering er en teknik til at læse et objekt fra den gemte tilstand i en fil. Objektet genskabes fra en lagret bytestrøm.

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

Produktion
Student: Alice  

En enkelt reference kan pege på forskellige objekter på forskellige tidspunkter.

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

I arv er det almindeligt at bruge en overordnet reference til underordnede objekter.

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

Ikke-refererede genstande bliver berettiget til affaldsindsamling.

Anonyme objekter

Anonyme objekter oprettes uden reference og bruges straks til engangsoperationer.

  • Ingen referencevariabel: Kan ikke genbruge objektet.
  • Oprettet og brugt sparer øjeblikkeligt hukommelse til kortvarige opgaver.
  • Almindelig i hændelseshåndtering (f.eks. knapklik).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Almindelig i UI-hændelseshåndtering.

Opret quiz