Java POJOクラス – Plain Old Java Object
これまで、私たちはJavaの通常のオブジェクトを説明し、使用してきました。 この記事では、オブジェクトの特殊なタイプPOJOを学習します。 POJOはPlain Old Java Objectの略で、Javaプログラムの再利用性と可読性を高めるために使用されます。 我々は、JavaのPOJOクラスを使用する方法と、なぜそれを学ぶことが重要であることについて説明します。
あなたは最新の技術動向を更新し、テレグラムでTechVidvanに参加
JavaでPOJOクラスは何ですか
POJO Plain Old Java Objectを意味しますそれは特別な制限で拘束されていない通常のオブジェクトであり、その。 Java言語仕様でいくつかの制約があるのみです。 簡単に言うと、POJOはゲッターとセッターのメソッドを持つ純粋なデータ構造として機能します。 POJOオブジェクトは、クラスパスを必要としません。 POJOは非常に書きやすく、理解しやすいので、Javaで最も広く使われているクラスです。 Sun Microsystems は EJB 3.0 で Java の POJO クラスを導入しました。
POJO クラスは Serializable など、または Object クラスから特定のメソッドをオーバーライドすることが可能です。 POJOクラスは、HttpServlet、Arrays、Calendarなどの定義済みのクラスを拡張してはなりません。 例えば、public class MyClass extends javax.servlet.http.HttpServlet と書いた場合、MyClass クラスは POJO クラスとは見なされません。
2. POJO クラスは、事前に指定されたアノテーションを含んではならない。 例えば、@Retention(RetentionPolicy.RUNTIME) public class MyClass{…}はPOJOクラスではありません。
3. POJOクラスは定義済みのインターフェースを実装してはならない。 例えば public class Test implements javax.ejb.EntityBean { … } はPOJOクラスとは見なされません。
さて、JavaでPOJOクラスを実装してみましょう。
POJOクラスの例
POJOクラスでは一般的にエンティティを定義していることが多いです。 たとえば、Internクラスが必要な場合、次のようにPOJOを作成することができます:
// 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; }}
上記の例では、明確に定義されたPOJOクラスを示しています。 この例では、フィールドのアクセス修飾子が制限されていないことがわかります。 public、private、default、protected などの任意のアクセス修飾子を持つことができます。 また、POJO クラスでは、任意のコンストラクターを追加する必要がないことにも注意してください。 POJO クラスはフレームワークに縛られることはありません。 しかし、我々はクラスの状態を変更するために任意の実際の大会でこのPOJOクラスを実装することはできません。
POJOは、アプリケーションのビジネスロジックを組み込んだオブジェクトのように動作する。 次の図は、POJO クラスの動作を示しています。 画像から、コントローラーがビジネスロジックと相互作用していることがよくわかります。 ビジネス ロジックは、データベースへのアクセスを取得するために POJO クラスと相互作用します。
Java Beans とは何ですか。 しかし、Java BeansがPOJOになるには、いくつかの制限がある。 これらの制限は次のとおりである:
1. すべてのJavaBeansはPOJOになれるが、すべてのPOJOクラスはJava Beansになれない。
2. Java BeansはSerializableインタフェースを実装すべきである。
3. Java Beansのすべてのフィールドは、フィールドに対して完全に制御できるプライベートでなければならない。
4. すべてのフィールドにはゲッターかセッターメソッド、あるいはその両方がなければならない。 Beanにはno-argコンストラクタがなければならない。
6.我々はコンストラクタまたはゲッターセッターによってのみフィールドにアクセスできる。
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()); }}
出力:
生徒の名前は: Rita
Java POJO Class vs Java Bean
さて、POJOクラスとJava Beanの両方について説明しましたが、それらの違いについて説明しましょう:
POJO | JAVA BEAN | |
Java仕様言語が強いる以外のPOJOクラスには制限がない。 | ||
POJOクラスはフィールドをあまり制御できません。 | Java Beanはメンバーを完全に制御できます。 | |
POJOクラスはSerializableインタフェースを実装してもしなくてもかまいません。 | ||
フィールド名で直接アクセスできる | ゲッターおよびセッターメソッドによってのみ、Java Bean内部のフィールドにアクセスできる | Java BeanはSerializableインタフェースを実装しなければならない。 |
フィールドに対するアクセス修飾子はどれでもよい。 | Java Beanのフィールドはprivateでなければならない。 | |
POJOクラスでは引数なしのコンストラクタがあってもなくてもよい。 | ||
POJOクラスは、フィールドに制限を加える必要がなく、フィールドに対して完全にアクセスできる場合に使用されます。 |
まとめ
コードの可読性を高めるJavaのPOJOクラスについて学びました。 また、現実のエンティティについても説明しました。 JavaBeansは、JavaのPOJOクラスとほぼ同じですが、この記事で説明したいくつかの違いもあります。 JavaでのPOJOクラスの動作と実装をご理解いただけたでしょうか。