Java POJO clase – Plain Old Java Object
Hasta ahora, hemos discutido y utilizado los objetos normales en Java. En este artículo, vamos a aprender un tipo especial de objeto POJO. POJO significa Plain Old Java Object, que se utiliza para aumentar la reutilización y legibilidad del programa Java. Discutiremos cómo usar la clase POJO de Java y por qué es importante aprenderla.
Manteniéndote actualizado con las últimas tendencias tecnológicas, Únete a TechVidvan en Telegram
¿Qué es la clase POJO en Java?
POJO significa Plain Old Java Object que es un objeto normal que no está vinculado con restricciones especiales. Sólo están vinculados con algunas restricciones en las especificaciones del lenguaje Java. Simplemente, POJO actúa como una estructura de datos pura que tiene métodos getter y setter. Los objetos POJO no requieren ningún classpath. POJO es la clase más utilizada en Java porque es muy fácil de escribir y entender. Sun Microsystems introdujo la clase POJO en Java en EJB 3.0.
La clase POJO puede anular ciertos métodos como Serializable o también de la clase Object.
Un POJO no debe hacer lo siguiente:
1. Una clase POJO no debe extender las clases predefinidas como HttpServlet, Arrays, Calendar, etc. Por ejemplo, si escribimos, public class MyClass extends javax.servlet.http.HttpServlet, entonces la clase MyClass no puede ser considerada como clase POJO.
2. Una clase POJO no debe contener anotaciones predefinidas. Por ejemplo, @Retention(RetentionPolicy.RUNTIME) public class MyClass{..} no es una clase POJO.
3. Una clase POJO no puede implementar interfaces predefinidas. Por ejemplo public class Test implements javax.ejb.EntityBean { … } no puede ser considerada como una clase POJO.
Ahora, implementemos la clase POJO en Java.
Ejemplo de clase POJO
La clase POJO generalmente define una entidad. Por ejemplo, si quieres una clase Intern entonces puedes crear un POJO como sigue:
// 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; }}
El ejemplo anterior muestra claramente una clase POJO bien definida. En este ejemplo, puedes ver que los modificadores de acceso de los campos no están restringidos. Pueden tener cualquier modificador de acceso como public, private, default, o protected. También puede notar que en la clase POJO no hay necesidad de agregar ningún constructor.
Podemos usar la clase POJO en cualquier código Java. La clase POJO no está atada al framework. Pero no podemos implementar esta clase POJO con ninguna convención real para cambiar el estado de la clase.
POJO se comporta como un objeto que incorpora la lógica de negocio de la aplicación. La siguiente figura muestra el funcionamiento de una clase POJO. En la imagen se puede ver claramente que el controlador interactúa con la lógica de negocio. La lógica de negocio, a su vez, interactúa con la clase POJO para acceder a la base de datos.
¿Qué son los Java Beans?
Los Java Beans son un tipo especial de POJOs. Pero hay algunas restricciones para que los Java beans se conviertan en POJO. Estas restricciones son las siguientes:
1. Todos los JavaBeans pueden ser POJOs pero todas las clases POJO no pueden ser Java Beans.
2. Los Java Beans deben implementar la interfaz Serializable.
3. Todos los campos de los Java Beans deben ser privados para proporcionar un control completo sobre los campos.
4. Todos los campos deben tener métodos getter o setter o ambos.
5. Debe haber un constructor sin carga en un bean.
6. Podemos acceder a los campos sólo mediante constructores o setters getter.
Código para entender 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()); }}
Salida:
Nombre de la alumna es: Rita
Clase POJO de Java vs Bean de Java
Ahora que hemos discutido tanto la clase POJO como los beans de Java, vamos a discutir las diferencias entre ellos:
POJO | JAVA BEAN |
No hay ninguna restricción en la clase POJO aparte de las obligadas por el lenguaje de especificación de Java. | Java Bean es una clase POJO especial que tiene algunas restricciones. |
La clase POJO no proporciona mucho control sobre los campos. | Java Bean proporciona un control completo sobre los miembros. |
La clase POJO puede o no implementar una interfaz Serializable. | Un Java Bean debe implementar una interfaz Serializable. |
Podemos acceder directamente a los campos por sus nombres | Podemos acceder a los campos dentro del Java Bean sólo por métodos getters y setters. |
Puede haber cualquiera de los modificadores de acceso para los campos. | Los campos en los Java Beans deben ser sólo privados. |
Puede haber o no un constructor sin carga en la clase POJO. | Debe haber un constructor no-arg en los Java Beans. |
Usamos la clase POJO cuando no hay necesidad de poner restricciones en los campos y puede haber acceso completo sobre los campos. | Usamos Java Beans cuando no queremos dar acceso completo a las entidades. |
Conclusión
Aprendimos la clase POJO en Java que mejora la legibilidad del código. También discutimos las entidades de la vida real. Los JavaBeans son casi similares a la clase POJO de Java pero también tiene algunas diferencias que discutimos en este artículo. Esperamos que haya entendido el funcionamiento y la implementación de la clase POJO en Java.