Java POJO class – Plain Old Java Object

Fino ad ora, abbiamo discusso e usato gli oggetti normali in Java. In questo articolo, impareremo un tipo speciale di oggetto POJO. POJO sta per Plain Old Java Object, che è usato per aumentare la riusabilità e la leggibilità del programma Java. Discuteremo come usare la classe POJO di Java e perché è importante impararla.

Mantenendoti aggiornato sulle ultime tendenze tecnologiche, unisciti a TechVidvan su Telegram

Cos’è la classe POJO in Java?

POJO sta per Plain Old Java Object che è un oggetto normale che non è legato con restrizioni speciali. Sono legati solo con alcune restrizioni sulle specifiche del linguaggio Java. Semplicemente, POJO agisce come una struttura dati pura che ha metodi getter e setter. Gli oggetti POJO non richiedono alcun classpath. POJO è la classe più usata in Java perché è molto facile da scrivere e capire. Sun Microsystems ha introdotto la classe POJO in Java in EJB 3.0.

La classe POJO può sovrascrivere certi metodi come Serializable o anche dalla classe Object.

Un POJO non deve fare quanto segue:

1. Una classe POJO non deve estendere le classi predefinite come HttpServlet, Arrays, Calendar, ecc. Per esempio, se scriviamo, public class MyClass extends javax.servlet.http.HttpServlet, allora la classe MyClass non può essere considerata come classe POJO.

2. Una classe POJO non deve contenere annotazioni prestabilite. Per esempio, @Retention(RetentionPolicy.RUNTIME) public class MyClass{..} non è una classe POJO.

3. Una classe POJO non può implementare interfacce predefinite. Per esempio la classe pubblica Test implementa javax.ejb.EntityBean { … } non può essere considerata una classe POJO.

Ora, implementiamo la classe POJO in Java.

Esempio di classe POJO

La classe POJO definisce generalmente un’entità. Per esempio, se vuoi una classe Intern allora puoi creare un POJO come segue:

// Intern POJO class to represent entity Internpublic class Intern { // default field String name; // public field public String role; // private field private double salary; //arg-constructor to initialize fields public Intern(String name, String role, double salary) { this.name = name; this.role = role; this.salary = salary; } // getter method for name public String getName() { return name; } // getter method for role public String getRole() { return role; } // getter method for salary public Double getSalary() { return salary; }}

L’esempio sopra mostra chiaramente una classe POJO ben definita. In questo esempio, puoi vedere che i modificatori di accesso dei campi non sono limitati. Possono avere qualsiasi modificatore di accesso come pubblico, privato, predefinito o protetto. Potete anche notare che nella classe POJO non c’è bisogno di aggiungere alcun costruttore.

Possiamo usare la classe POJO in qualsiasi codice Java. La classe POJO non è legata al framework. Ma non possiamo implementare questa classe POJO con nessuna convenzione reale per cambiare lo stato della classe.

POJO si comporta come un oggetto che incorpora la logica di business dell’applicazione. La figura seguente mostra il funzionamento di una classe POJO. Dall’immagine, si può vedere chiaramente che il controllore interagisce con la logica di business. La logica di business, a sua volta, interagisce con la classe POJO per ottenere l’accesso al database.

Cosa sono i Java Beans?

I Java Beans sono un tipo speciale di POJO. Ma ci sono alcune restrizioni sui Java Beans per diventare POJO. Queste restrizioni sono le seguenti:

1. Tutti i JavaBeans possono essere POJO ma tutte le classi POJO non possono essere Java Beans.

2. I Java Beans devono implementare l’interfaccia Serializable.

3. Tutti i campi dei Java Beans devono essere privati per fornire un controllo completo sui campi.

4. Tutti i campi devono avere metodi getter o setter o entrambi.

5. Devono avere un conteggio di tipo “no-arg”. Ci deve essere un costruttore no-arg in un bean.

6. Possiamo accedere ai campi solo tramite costruttore o getter setter.

Codice per capire JavaBeans

package com.techvidvan.pojoclass;import java.io. * ;class Student implements java.io.Serializable { private int id; private String name; public Student() {} public void setId(int id) { this.id = id; } public int getId() { return id; } public void setName(String name) { this.name = name; } public String getName() { return name; }}public class Test { public static void main(String args) { Student s = new Student(); //object is created s.setName("Rita"); //setting value to the object System.out.println("Name of the student is: " + s.getName()); }}

Output:
Nome dello studente è: Rita

Java POJO Class vs Java Bean

Ora che abbiamo discusso sia la classe POJO che i Java Bean, discutiamo le differenze tra loro:

POJO JAVA BEAN
Non ci sono restrizioni sulla classe POJO oltre a quelle imposte dal linguaggio Java Specification. Java Bean è una classe POJO speciale che ha alcune restrizioni.
La classe POJO non fornisce molto controllo sui campi. Java Bean fornisce un controllo completo sui membri.
La classe POJO può implementare o meno un’interfaccia Serializzabile. Un Java Bean deve implementare un’interfaccia Serializzabile.
Possiamo accedere direttamente ai campi tramite i loro nomi Possiamo accedere ai campi all’interno del Java Bean solo tramite i metodi getter e setter.
Può esserci uno qualsiasi dei modificatori di accesso per i campi. I campi nei Java Bean devono essere solo privati.
Può esserci o meno un costruttore no-arg nella classe POJO. Ci deve essere un costruttore no-arg in Java Beans.
Utilizziamo la classe POJO quando non c’è bisogno di mettere restrizioni sui campi e ci può essere accesso completo sui campi. Utilizziamo Java Beans quando non vogliamo dare accesso completo alle entità.

Conclusione

Abbiamo imparato la classe POJO in Java che migliora la leggibilità del codice. Abbiamo anche discusso delle entità reali. Il JavaBeans è quasi simile alla classe POJO di Java, ma ha anche alcune differenze che abbiamo discusso in questo articolo. Speriamo che abbiate capito il funzionamento e l’implementazione della classe POJO in Java.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.