Klasser och objekt i Java

Klasser och objekt i Java

I Java utgör klasser och objekt grunden för objektorienterad programmering (OOP). De hjälper till att modellera verkliga enheter och organisera kod på ett strukturerat sätt.

  • En klass är en ritning som används för att skapa objekt som delar gemensamma egenskaper och beteende.
  • Ett objekt är en instans av en klass. Den representerar en specifik enhet skapad från klassmallen.

Till exempel Hund är en klass Tommy är ett objekt i den klassen.

Class_Object_exampleKlasser och objekt (Här är hund klassen och Bobby är objekt)

Java klass

En klass är en ritning som definierar data och beteende för objekt. Den grupperar relaterade fält och metoder i en enda enhet. Minne för dess medlemmar tilldelas endast när ett objekt skapas.

  • Fungerar som en mall för att skapa objekt med delad struktur.
  • Upptar inte minne för fält förrän instansieringen.
  • Kan innehålla fältmetoder konstruktörer kapslade klasser och gränssnitt.
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-objekt

Ett objekt är en instans av en klass skapad för att komma åt dess data och operationer. Varje objekt har sitt eget tillstånd.

  • Ange : Värden lagrade i fält.
  • Beteende : Åtgärder definierade genom metoder.
  • Identitet : Skiljer ett objekt från ett annat.

Objekt speglar verkliga föremål som kundprodukt eller cirkel. Icke-primitiva objekt lagras på högen medan deras referenser finns kvar i högen.

Objekt i JavaJava-objekt (exempel på hundar)

Objektinstansiering

Att skapa ett objekt kallas instansiering. Alla instanser av en klass delar struktur och beteende samtidigt som olika tillståndsvärden lagras.

Deklarera objekt i JavaJava-objektdeklaration

Förklaring:

Hund tuffy;

Detta deklarerar bara en referens. Objektet skapas inte och referensen har null.

Initiering:

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

Klasser-och-objekt-i-java-3-768Initialisering

Den nya operatören allokerar minne och anropar konstruktorn.

Exempel: Definiera och använda en klass

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  

Notera: Varje klass har minst en konstruktör. Om ingen är definierad tillhandahåller Java en standardkonstruktor utan argument som anropar den överordnade konstruktorn.

Initiera objekt med metod/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  

Sätt att skapa objekt i Java

Java stöder fyra standardmetoder.

1. Använda nytt nyckelord

Det mest direkta sättet att skapa ett objekt.

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

2. Använda Reflektion

Används för dynamisk klassladdning som sett i ramverk 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. Använder metoden clone().

clone() skapar en kopia av ett befintligt objekt. Klassen måste implementera 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. Använda avserialisering

Avserialisering är en teknik för att läsa ett objekt från det sparade tillståndet i en fil. Objekt återskapas från en lagrad byteström.

Referera till Serialisering/avserialisering 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 enda referens kan peka på olika objekt vid olika tidpunkter.

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

Vid arv är det vanligt att använda en överordnad referens för underordnade objekt.

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

Objekt utan referens blir kvalificerade för sophämtning.

Anonyma objekt

Anonyma objekt skapas utan referens och används omedelbart för engångsoperationer.

  • Ingen referensvariabel: Kan inte återanvända objektet.
  • Skapat och använt sparar omedelbart minne för kortlivade uppgifter.
  • Vanligt vid händelsehantering (t.ex. knappklick).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Vanligt i UI-händelsehantering.

Skapa frågesport