Classi e oggetti in Java

Classi e oggetti in Java

In Java le classi e gli oggetti costituiscono il fondamento della programmazione orientata agli oggetti (OOP). Aiutano a modellare entità del mondo reale e a organizzare il codice in modo strutturato.

  • Una classe è un modello utilizzato per creare oggetti che condividono proprietà e comportamenti comuni.
  • Un oggetto è un'istanza di una classe. Rappresenta un'entità specifica creata dal modello di classe.

Ad esempio Dog è una classe Tommy è un oggetto di quella classe.

Classe_Oggetto_esempioClassi e oggetti (qui Dog è la classe e Bobby è l'oggetto)

Classe Java

Una classe è un progetto che definisce dati e comportamento per gli oggetti. Raggruppa campi e metodi correlati in una singola unità. La memoria per i suoi membri viene allocata solo quando viene creato un oggetto.



  • Funziona come un modello per creare oggetti con struttura condivisa.
  • Non occupa memoria per i campi fino all'istanziazione.
  • Può contenere campi, metodi, costruttori, classi e interfacce nidificate.
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  );      }   }   

Produzione
10 Alice  

Oggetti Java

Un oggetto è un'istanza di una classe creata per accedere ai suoi dati e alle sue operazioni. Ogni oggetto mantiene il proprio stato.

  • Stato : valori memorizzati nei campi.
  • Comportamento : Azioni definite attraverso metodi.
  • Identità : Distingue un oggetto da un altro.

Gli oggetti rispecchiano elementi del mondo reale come il prodotto o il cerchio del cliente. Gli oggetti non primitivi vengono archiviati nell'heap mentre i loro riferimenti rimangono nello stack.

Oggetti in JavaOggetti Java (esempio di cani)

Istanziazione di oggetti

La creazione di un oggetto è nota come istanziazione. Tutte le istanze di una classe condividono struttura e comportamento memorizzando valori di stato diversi.

Dichiarazione di oggetti in JavaDichiarazione di oggetti Java

Dichiarazione:

Ciuffo di cane;

Questo dichiara solo un riferimento. L'oggetto non viene creato e il riferimento è nullo.

Inizializzazione:

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

Classi e oggetti in Java-3-768Inizializzazione

L'operatore new alloca memoria e invoca il costruttore.

Esempio: definizione e utilizzo di 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  );      }   }   

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

Nota: Ogni classe ha almeno un costruttore. Se non ne viene definito nessuno, Java fornisce un costruttore predefinito senza argomenti che chiama il costruttore genitore.

Inizializza l'oggetto utilizzando il metodo/funzione

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

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

Modi per creare oggetti in Java

Java supporta quattro approcci standard.

1. Utilizzo di una nuova parola chiave

Il modo più diretto per creare un oggetto.

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

2. Utilizzo della riflessione

Utilizzato per il caricamento dinamico delle classi come visto in framework come 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  ();      }      }   }   

Produzione
Student@1dbd16a6  

3. Utilizzo del metodo clone()

clone() crea una copia di un oggetto esistente. La classe deve implementare 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  ();      }      }   }   

Produzione
GeeksForGeeks  

4. Utilizzo della deserializzazione

La deserializzazione è una tecnica per leggere un oggetto dallo stato salvato in un file. L'oggetto viene ricreato da un flusso di byte archiviato.

Fare riferimento a Serializzazione/Deserializzazione in 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  ();     }      }   }   

Produzione
Student: Alice  

Un singolo riferimento può puntare a oggetti diversi in momenti diversi.

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

Nell'ereditarietà è comune utilizzare un riferimento genitore per gli oggetti figli.

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

Gli oggetti senza riferimenti diventano idonei per la Garbage Collection.

Oggetti anonimi

Gli oggetti anonimi vengono creati senza riferimento e utilizzati immediatamente per operazioni una tantum.

  • Nessuna variabile di riferimento: non è possibile riutilizzare l'oggetto.
  • Creato e utilizzato consente di risparmiare immediatamente memoria per attività di breve durata.
  • Comune nella gestione degli eventi (ad esempio clic sui pulsanti).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Comune nella gestione degli eventi dell'interfaccia utente.

Crea quiz

Articoli Più

Categoria

Articoli Interessanti