Javaの集計とは何ですか

青灯夜游
リリース: 2018-12-17 09:11:41
オリジナル
7519 人が閲覧しました

Java の集約は、2 つのクラス間の関係であり、一方向の関連付けです。クラスにエンティティ参照がある場合、それは集約と呼ばれます。

Javaの集計とは何ですか

例: Studentclass と Addressclass という 2 つのクラスがあり、それぞれ学生と住所を表します。 Studentclass クラスには、studentId、studentName などの多くの情報が含まれており、Addressclass クラスも含まれています。 Addressclass クラスには、国、州都、都市などの独自の情報があります。以下に示すように:

class Address
{
  String country;
  String province;
  String city;
  .....
}
class StudentClass
{
   int studentId;
   String studentName;
   //创建与Addressclass类的HAS-A关系
   Address studentAddr; 
   StudentClass(int id, String name, Address addr){
       ......
   }
   
}
ログイン後にコピー

この場合、Studentclass クラスには Addressclass クラスへのエンティティ参照があり、

各学生には特定のアドレスがあるため、学生とアドレスの関係は A です。 Has-A 関係、つまり Student Has-A Address

なぜ集計を使用するのでしょうか?

コードの再利用性を維持できるためです。

たとえば、上の例の Student と Address という 2 つのクラスに基づいて、大学と職員を表す他の 2 つのクラス College と Staff が使用されます。

学生、大学の住所、職員の住所を取得するために、同じコードを何度も使用する必要はなくなり、各クラスを定義するときに Address クラスを参照するだけで済みます。

したがって、集計関係を使用することで、コードの再利用性を向上させることができます。

集計例

class Address {
String country,province,city;

public Address(String country, String province, String city) {
   this.country = country;
    this.province = province;
    this.city = city;
	
}

}

public class StudentClass{
int id;
String name;
Address address;

public StudentClass(int id, String name,Address address) {
	this.id = id;
	this.name = name;
	this.address=address;
}

void display(){
System.out.println("="+id+",name="+name);
System.out.println("地址是:  "+address.country+","+address.province+","+address.city+"\n");
}

public static void main(String[] args) {
Address address1=new Address("China","Hubei","Wuhan");
Address address2=new Address("China","Hunan","Changsha");

StudentClass Student1=new StudentClass(150,"小明",address1);
StudentClassStudent2=new StudentClass(151,"小华",address2);
	
Student1.display();
Student2.display();
	
}
}
ログイン後にコピー

レンダリング:

Javaの集計とは何ですか

要約: 上記はこれですこの記事の内容全体が皆さんの学習に役立つことを願っています。

以上がJavaの集計とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート