Java は、現実世界とプログラミングと見なされるオブジェクト間のさまざまな関係を提供します。場合によっては、関係を実装するのが非常に難しい、または理解することが難しい場合があります。したがって、Java は構成と集計の関係をユーザーに提供します。作曲では、「所属」関係と呼ばれる関係を構築できます。論理的には、あるオブジェクトが他のオブジェクトよりも大きいと言えます。集約では、すべてのオブジェクトが互いに独立して動作する、「has a」関係と呼ばれる関係を構築できます。集合関係は弱い関連性と見なされ、合成は強い関連性と見なされます。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
合成の構文は次のとおりです:
public class building { private final Room room; public building () { room = new room (); } } class Room { }
説明:
次のような集計の構文:
public class student { private List students; public student () { students = new list_students(); } } class student { }
説明:
以下は、Java での合成と集計がどのように機能するかを示しています。
構成は、関係の「所属」を指定するために使用されます。これは、アイテムの 1 つが他のアイテムよりも賢く大きいこと、またはオブジェクトと言い換えることができることを意味します。たとえば、部屋を建物の一部として考えるか、建物には部屋があると言うことができます。したがって、基本的に、それを「に属する」と呼ぶか「持っている」と呼ぶかは、単なる観点の問題です。
基本的に、この構成は、それを含むオブジェクトがそれを主張しているという事実を考慮すると、強い関係です。このように、オブジェクトのライフサイクルを削除すると、親ノードを削除すると、自動的に子ノードも削除されることになります。たとえば、部屋を破壊するときについて考えてみましょう。その後、建物も破壊されます。これは、それを含むオブジェクトがその一部とともに存在できないという意味ではないことに注意してください。たとえば、建物内の仕切りをすべて破壊し、部屋を消滅させることができます。いずれにせよ、構造はいずれにせよ存在するでしょう。カーディナリティに関して言えば、それを含む記事には必要なだけ多くの部分を含めることができます。それにもかかわらず、パーツ全体に正確に 1 つのコンパートメントが必要です。
Java での集約の仕組みは次のとおりです。
私たちは、作曲には「関係がある」ことを知っています。同様に、集計にも「Has a」関係があります。基本的な違いは、集約には親ノードまたは親オブジェクトが含まれていないことです。この関係では、すべてのオブジェクトは互いに独立しています。たとえば、車とそのさまざまなホイールを考えることができます。同じホイールを別の車に取り付けることができ、問題なくファイルが動作します。車輪のない車は役に立たないことはわかっているので、オブジェクトのすべての部分を組み立てるのはこのためです。これが集約関係です。
以下に、構成と集計関係の例を示します。
コード:
import java.io.*; import java.util.*; class Lib { public String name_book; public String bk_author; Lib(String name_book, String bk_author) { this.name_book = name_book; this.bk_author = bk_author; } } class Library { private final ListLib_books; Library (List Lib_books) { this.Lib_books =Lib_books; } public List book_details(){ return Lib_books; } } class composition { public static void main (String[] args) { Lib book1 = new Lib("Database management", "Rajiv Chopra "); Lib book2 = new Lib("MySql", "Rajiv Chopra l"); Lib book3 = new Lib("oracle", "Donald Burleson"); List Lib_books = new ArrayList (); Lib_books.add(book1); Lib_books.add(book2); Lib_books.add(book3); Library library = new Library(Lib_books); List bks = library.book_details(); for(Lib bk : bks){ System.out.println("name_book : " + bk.name_book + " and " +" bk_author : " + bk.bk_author); } } }
説明:
出力:
コード:
import java.io.*; import java.util.*; class stud_class { String stud_name; int roll_no ; String stud_dept; stud_class(String stud_name, int roll_no, String stud_dept) { this.stud_name = stud_name; this.roll_no = roll_no; this.stud_dept = stud_dept; } } class Depofcollege { String stud_name; private Liststudents; Depofcollege(String stud_name, List students) { this.stud_name = stud_name; this.students = students; } public List getStudentsDetails() { return students; } } class college { String collegeName; private List departments; college(String collegeName, List departments) { this.collegeName = collegeName; this.departments = departments; } public int totalstudents() { int noOfStudents = 0; List students; for(Depofcollege dept : departments) { students = dept.getStudentsDetails(); for(stud_class s : students) { noOfStudents++; } } return noOfStudents; } } class aggregation { public static void main (String[] args) { stud_class stud1 = new stud_class("Sameer", 5, "IT"); stud_class stud2 = new stud_class("Pooja", 6, "IT"); stud_class stud3 = new stud_class("Sanddep", 8, "Mech"); stud_class stud4 = new stud_class("Jenny", 2, "Mech"); List i_students = new ArrayList (); i_students.add(stud1); i_students.add(stud2); List me_students = new ArrayList (); me_students.add(stud3); me_students.add(stud4); Depofcollege IT = new Depofcollege("IT", i_students); Depofcollege Mech = new Depofcollege("Mech", me_students); List departments = new ArrayList (); departments.add(IT); departments.add(Mech); college college= new college("MIT", departments); System.out.print("Count of students: "); System.out.print(college.totalstudents()); } }
説明:
出力:
上記の記事で合成と集計の基本的な構文を説明し、合成と集計のさまざまな例も見てきました。この記事では、Java で合成と集計をいつどのように使用するかを説明しました。
以上がJava での構成と集計の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。