Java POJO osztály – Plain Old Java Object

Mostanáig a normál objektumokat beszéltük meg és használtuk Java-ban. Ebben a cikkben az objektumok egy speciális típusát, a POJO-t fogjuk megismerni. A POJO a Plain Old Java Object rövidítése, amely a Java program újrafelhasználhatóságának és olvashatóságának növelésére szolgál. Megbeszéljük, hogyan használjuk a Java POJO osztályt, és miért fontos megtanulni.

Keeping you updated with latest technology trends, Join TechVidvan on Telegram

What is POJO class in Java?

POJO a Plain Old Java Object rövidítése, amely egy normál objektum, amelyet nem kötnek speciális korlátozásokhoz. Csak a Java nyelvi specifikációk bizonyos korlátozásokkal vannak megkötve. Egyszerűen a POJO tiszta adatszerkezetként működik, amely getter és setter metódusokkal rendelkezik. A POJO objektumok nem igényelnek classpath-ot. A POJO a legelterjedtebb osztály a Java-ban, mert nagyon könnyű megírni és megérteni. A Sun Microsystems az EJB 3.0-ban vezette be a POJO osztályt a Java-ban.

A POJO osztály felülírhat bizonyos metódusokat, mint például a Serializable vagy az Object osztályból is.

A POJO nem teheti a következőket:

1. Egy POJO osztály nem bővítheti ki az olyan előre definiált osztályokat, mint a HttpServlet, Arrays, Calendar stb. Ha például azt írjuk, hogy public class MyClass extends javax.servlet.http.HttpServlet, akkor a MyClass osztály nem tekinthető POJO osztálynak.

2. Egy POJO osztály nem tartalmazhat előre meghatározott jegyzeteket. Például a @Retention(RetentionPolicy.RUNTIME) public class MyClass{..} nem POJO osztály.

3. Egy POJO osztály nem implementálhat előre meghatározott interfészeket. Például public class Test implements javax.ejb.EntityBean { …} nem tekinthető POJO osztálynak.

Most, implementáljuk a POJO osztályt Javában.

Példa a POJO osztályra

A POJO osztály általában egy entitást definiál. Ha például egy Intern osztályt szeretnénk, akkor a következőképpen hozhatunk létre egy POJO osztályt:

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

A fenti példa jól mutatja egy jól definiált POJO osztályt. Ebben a példában látható, hogy a mezők hozzáférési módosítói nincsenek korlátozva. Bármilyen hozzáférési módosítóval rendelkezhetnek, mint például public, private, default vagy protected. Azt is megjegyezhetjük, hogy a POJO osztályban nincs szükség konstruktor hozzáadására.

A POJO osztályt bármilyen Java kódban használhatjuk. A POJO osztály nem kötődik a keretrendszerhez. De nem tudjuk ezt a POJO osztályt valós konvenciókkal implementálni, hogy megváltoztassuk az osztály állapotát.

A POJO osztály úgy viselkedik, mint egy objektum, amely magában foglalja az alkalmazás üzleti logikáját. A következő ábra egy POJO osztály működését mutatja be. Az ábrán jól látható, hogy a vezérlő kölcsönhatásba lép az üzleti logikával. Az üzleti logika viszont kölcsönhatásba lép a POJO osztállyal az adatbázishoz való hozzáférés érdekében.

Mi a Java Beans?

A Java Beans a POJO-k egy speciális típusa. De a Java babok POJO-vá válásának van néhány korlátozása. Ezek a korlátozások a következők:

1. Minden JavaBean lehet POJO, de minden POJO osztály nem lehet Java Beans.

2. A Java Beans-nek implementálnia kell a Serializable interfészt.

3. A Java Beans minden mezőjének privátnak kell lennie, hogy teljes kontrollt biztosítson a mezők felett.

4. Minden mezőnek vagy getter vagy setter metódussal kell rendelkeznie, vagy mindkettővel.

5. A Java Beans-nek vagy getter vagy setter metódussal kell rendelkeznie. Egy babban kell lennie egy no-arg konstruktornak.

6. A mezőket csak konstruktorral vagy getter setterekkel érhetjük el.

Kód a JavaBeans megértéséhez

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

Kimenet:
A diák neve: Rita

Java POJO osztály vs Java Bean

Most, hogy mind a POJO osztályt, mind a Java babokat tárgyaltuk, beszéljünk a köztük lévő különbségekről:

POJO JAVA BEAN
A POJO osztályra nincs más korlátozás, mint amit a Java specifikációs nyelv kikényszerít. A Java Bean egy speciális POJO osztály, amelynek van néhány korlátozása.
A POJO osztály nem sok ellenőrzést biztosít a mezők felett. A Java Bean teljes ellenőrzést biztosít a tagok felett.
A POJO osztály implementálhat vagy nem implementálhat Serializable interfészt. A Java Bean-nek implementálnia kell egy Serializable interfészt.
A mezőkhöz közvetlenül a nevük alapján férhetünk hozzá A Java Bean-en belül a mezőkhöz csak getter és setter metódusokkal férhetünk hozzá.
A mezőkhöz bármilyen hozzáférési módosító lehet. A Java Beanben lévő mezőknek csak privátnak kell lenniük.
A POJO osztályban lehet vagy nem lehet argumentum nélküli konstruktor. A Java Beans-ben kell lennie egy no-arg konstruktornak.
A POJO osztályt akkor használjuk, ha nem kell korlátozásokat tenni a mezőkre, és teljes hozzáférés lehet a mezők felett. A Java Beans-t akkor használjuk, ha nem akarunk teljes hozzáférést adni az entitásokhoz.

Következtetés

Megtanultuk a POJO osztályt a Java-ban, ami növeli a kód olvashatóságát. Megbeszéltük a valós entitásokat is. A JavaBeans szinte teljesen hasonló a Java POJO osztályhoz, de van néhány különbség is, amelyeket ebben a cikkben tárgyaltunk. Reméljük, hogy talán megértette a POJO osztály működését és megvalósítását Javában.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.