Clase și obiecte în Java

Clase și obiecte în Java

În Java, clasele și obiectele formează baza programării orientate pe obiecte (OOP). Ele ajută la modelarea entităților din lumea reală și la organizarea codului într-un mod structurat.

  • O clasă este un plan folosit pentru a crea obiecte care au proprietăți și comportament comune.
  • Un obiect este o instanță a unei clase. Reprezintă o entitate specifică creată din șablonul de clasă.

De exemplu Câinele este o clasă Tommy este un obiect al acelei clase.

Class_Object_exampleClase și obiecte (Aici câinele este clasa și Bobby este obiectul)

Clasa Java

O clasă este un plan care definește datele și comportamentul pentru obiecte. Grupează domenii și metode înrudite într-o singură unitate. Memoria pentru membrii săi este alocată numai atunci când este creat un obiect.

  • Acționează ca un șablon pentru a crea obiecte cu structură partajată.
  • Nu ocupă memorie pentru câmpuri până la instanțiere.
  • Poate conține câmpuri metode constructori imbricate clase și interfețe.
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  );      }   }   

Ieșire
10 Alice  

Obiecte Java

Un obiect este o instanță a unei clase create pentru a-și accesa datele și operațiunile. Fiecare obiect are propria sa stare.

  • Stat : Valori stocate în câmpuri.
  • Comportament : Acțiuni definite prin metode.
  • Identitate : Distinge un obiect de altul.

Obiectele oglindesc articole din lumea reală, cum ar fi produsul clientului sau cercul. Obiectele non-primitive sunt stocate pe heap în timp ce referințele lor rămân pe stivă.

Obiecte în JavaObiecte Java (Exemplu de câini)

Instanciarea obiectului

Crearea unui obiect este cunoscută ca instanțiere. Toate instanțele unei clase împărtășesc structura și comportamentul în timp ce stochează valori diferite de stare.

Declararea obiectelor în JavaDeclarație de obiect Java

Declaraţie:

tuf de câine;

Aceasta declară doar o referință. Obiectul nu este creat și referința este nulă.

Inițializare:

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

Clase-și-Obiecte-în-java-3-768Inițializare

Noul operator alocă memorie și invocă constructorul.

Exemplu: definirea și utilizarea unei clase

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

Ieșire
Name is: tuffy Breed age and color are: papillon 5 white  

Nota: Fiecare clasă are cel puțin un constructor. Dacă nu este definit niciunul, Java oferă un constructor implicit fără argument care apelează constructorul părinte.

Inițializați obiectul utilizând Metoda/Funcția

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

Ieșire
Software name is: Visual Studio Software price is: 0.0  

Modalități de a crea obiecte în Java

Java acceptă patru abordări standard.

1. Utilizarea unui cuvânt cheie nou

Cel mai direct mod de a crea un obiect.

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

2. Folosind Reflection

Folosit pentru încărcarea dinamică a clasei, așa cum se vede în cadre precum 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  ();      }      }   }   

Ieșire
Student@1dbd16a6  

3. Folosind metoda clone().

clone() creează o copie a unui obiect existent. Clasa trebuie să implementeze 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  ();      }      }   }   

Ieșire
GeeksForGeeks  

4. Utilizarea deserializării

Deserializarea este o tehnică de citire a unui obiect din starea salvată într-un fișier. Obiectul este recreat dintr-un flux de octeți stocat.

Consultați Serializare/De-serializare în 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  ();     }      }   }   

Ieșire
Student: Alice  

O singură referință poate indica diferite obiecte în momente diferite.

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

În moștenire este obișnuit să se folosească o referință părinte pentru obiectele copil.

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

Obiectele fără referință devin eligibile pentru colectarea gunoiului.

Obiecte anonime

Obiectele anonime sunt create fără referință și utilizate imediat pentru operațiuni unice.

  • Fără variabilă de referință: nu se poate reutiliza obiectul.
  • Creat și utilizat salvează instantaneu memorie pentru sarcini de scurtă durată.
  • Frecvent în gestionarea evenimentelor (de exemplu, clicuri pe butoane).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Frecvent în gestionarea evenimentelor UI.

Creați un test