Classes i objectes en Java

Classes i objectes en Java

A Java, les classes i els objectes formen la base de la Programació Orientada a Objectes (OOP). Ajuden a modelar entitats del món real i organitzar el codi de manera estructurada.

  • Una classe és un pla utilitzat per crear objectes que comparteixen propietats i comportaments comuns.
  • Un objecte és una instància d'una classe. Representa una entitat específica creada a partir de la plantilla de classe.

Per exemple, el gos és una classe Tommy és un objecte d'aquesta classe.

Classe_Objecte_exempleClasses i objectes (aquí el gos és la classe i Bobby és l'objecte)

Classe Java

Una classe és un pla que defineix les dades i el comportament dels objectes. Agrupa camps i mètodes relacionats en una sola unitat. La memòria dels seus membres només s'assigna quan es crea un objecte.

  • Actua com a plantilla per crear objectes amb estructura compartida.
  • No ocupa memòria per als camps fins a la instanciació.
  • Pot contenir camps mètodes constructors classes imbricades i interfícies.
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  );      }   }   

Sortida
10 Alice  

Objectes Java

Un objecte és una instància d'una classe creada per accedir a les seves dades i operacions. Cada objecte té el seu propi estat.

  • Estat : Valors emmagatzemats als camps.
  • Comportament : Accions definides mitjançant mètodes.
  • Identitat : Distingeix un objecte d'un altre.

Els objectes reflecteixen elements del món real, com ara el producte del client o el cercle. Els objectes no primitius s'emmagatzemen a la pila mentre les seves referències romanen a la pila.

Objectes en JavaObjectes Java (exemple de gossos)

Instanciació d'objectes

La creació d'un objecte es coneix com a instanciació. Totes les instàncies d'una classe comparteixen estructura i comportament mentre emmagatzemen diferents valors d'estat.

Declaració dDeclaració d'objectes Java

Declaració:

gos tufós;

Això només declara una referència. L'objecte no es crea i la referència és nul.

Inicialització:

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

Classes-i-objectes-en-java-3-768Inicialització

El nou operador assigna memòria i invoca el constructor.

Exemple: Definició i ús d'una classe

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

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

Nota: Cada classe té almenys un constructor. Si no es defineix cap, Java proporciona un constructor predeterminat sense arguments que crida al constructor pare.

Inicialitzar l'objecte utilitzant Mètode/Funció

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

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

Maneres de crear objectes en Java

Java admet quatre enfocaments estàndard.

1. Ús de la paraula clau nova

La forma més directa de crear un objecte.

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

2. Ús de la reflexió

S'utilitza per a la càrrega dinàmica de classes com es veu en marcs com 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  ();      }      }   }   

Sortida
Student@1dbd16a6  

3. Utilitzant el mètode clone().

clone() crea una còpia d'un objecte existent. La classe ha d'implementar 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  ();      }      }   }   

Sortida
GeeksForGeeks  

4. Ús de la deserialització

La deserialització és una tècnica de lectura d'un objecte des de l'estat desat en un fitxer. L'objecte es recrea a partir d'un flux de bytes emmagatzemat.

Consulteu Serialització/Des-serialització en 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  ();     }      }   }   

Sortida
Student: Alice  

Una única referència pot apuntar a diferents objectes en diferents moments.

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

En l'herència és habitual utilitzar una referència pare per als objectes fills.

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

Els objectes sense referència són aptes per a la recollida d'escombraries.

Objectes anònims

Els objectes anònims es creen sense referència i s'utilitzen immediatament per a operacions puntuals.

  • Sense variable de referència: no es pot reutilitzar l'objecte.
  • Creat i utilitzat a l'instant estalvia memòria per a tasques de curta durada.
  • Comú en la gestió d'esdeveniments (p. ex., clics als botons).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Comú en la gestió d'esdeveniments de la IU.

Crea un qüestionari