מה זה אסוציאציה בג'אווה ולמה אתה צריך את זה?



מאמר זה בנושא שיוך ב- Java יעזור לך להבין כיצד ליצור קשר בין שני מחלקות באמצעות האובייקטים שלהם בעת קידוד ב- Java

איך יוצרים קשר בין שתי כיתות כשאתה כותב א תוכנית Java ? זה פשוט. אתה יכול לעשות שימוש במושג שנקרא אסוציאציה. נשמע מעניין נכון? במאמר זה, בואו לבדוק את העמותה בפירוט.

הנושאים הנדונים במאמר זה הם:





מהי העמותה?

שיוך ב- Java הוא קשר או קשר בין שני נפרדים שיעורים שמוקמים דרך שלהם חפצים . קשר אסוציאציה מציין כיצד אובייקטים מכירים אחד את השני ואיך הם משתמשים בפונקציונליות של זה. זה יכול להיות אחד לאחד, אחד לרבים, רבים לאחד ורבים לרבים.

עמותה בג



מיזוג קוד c + +
  • לדוגמה,לאדם יכול להיות רק דרכון אחד. זה ' אחד לאחד ' מערכת יחסים.
  • אם אנחנו מדברים על הקשר בין בנק לעובד, בבנק יכולים להיות עובדים רבים, אז זה ' אחד לרבים ' מערכת יחסים.
  • באופן דומה, כל עיר קיימת בדיוק במדינה אחת, אך למדינה יכולות להיות ערים רבות שהיא ' רבים לאחד ' מערכת יחסים.
  • לבסוף, אם אנו מדברים על הקשר בין מורה לתלמיד, ניתן לשייך מספר תלמידים למורה יחיד ותלמיד יחיד יכול להיות משויך למספר מורים אך ניתן ליצור שניהם או למחוק אותם באופן עצמאי. זה ' רבים-רבים ' מערכת יחסים.

בואו נבין את האגודה עם דוגמה.

חבילה MyPackage יבוא java.util. * class CityClass {private String cityName public String getCityName () {return cityName} public void setCityName (String cityName) {this.cityName = cityName} @Override public String toString () {return cityName}} class ציין {פרטי מחרוזת stateName רשימת ערים ציבוריות מחרוזת getStateName () {return stateName} public void setStateName (String stateName) {this.stateName = stateName} public רשימה getCities () {return citys} public void setState (רשימת ערים) {this.citys = citys}} Association class class דוגמא {main public public static (String [] args) {State state = new State () state.setStateName ('California') CityClass city = new CityClass () city.setCityName ('Los Angeles') CityClass city2 = new CityClass () city2.setCityName ('San Diago') List empList = new ArrayList () empList.add (city) empList.add (city2) state.setState (empList) System.out.println (state.getCities () + 'הן ערים במדינה' + state.getStateName ())}}

תְפוּקָה:

[לוס אנג'לס, סן דיאגו] הן ערים במדינת קליפורניה



כפי שאתה יכול לראות, בתוכנית לדוגמא זו ישנם שני שיעורים, כלומר, מדינות ו ערים. שני הכיתות הנפרדות הללו קשורות באמצעותן חפצים . יתר על כן, כל עיר קיימת בדיוק במדינה אחת, אך במדינה יכולות להיות ערים רבות, ומכאן המונח 'רבים לאחד'. חשוב לציין כי לאגודה בג'אווה יש שתי צורות מיוחדות. בואו לבדוק אותם.

שתי צורות התאגדות

הרכב ו צבירה הן שתי צורות ההתאגדות המיוחדות. בואו לבדוק אותם בעזרת דוגמא.

הרכב

זהסוג 'שייך-ל'אִרגוּן. זה פשוט אומר שאחד האובייקטים הוא מבנה גדול יותר מבחינה לוגית, המכיל את האובייקט השני. במילים אחרות, זה חלק או חבר באובייקט הגדול יותר. לחלופין, זה נקרא לעתים קרובות יחסי 'יש- a' (בניגוד ליחסי 'זה- a', כלומר ).

ללדוגמא, לבניין יש חדר, או במילים אחרות, חדר שייך לבניין. הרכב הוא סוג חזק של יחסי 'יש- a' מכיוון שמחזורי החיים של האובייקטים קשורים. המשמעות היא שאם נשמיד את חפץ הבעלים, גם חבריו יושמדו איתו. לדוגמא, אם הבניין נהרס החדר נהרס גם בדוגמה הקודמת שלנו. אבל, שימו לב שזה לא אומר, שהאובייקט המכיל לא יכול להתקיים ללא אף אחד מחלקיו. לדוגמא, אם נקרע את כל החדרים בתוך בניין, הבניין עדיין יהיה קיים.

צבירה

צבירה היא גם מערכת יחסים של 'יש- a', אך מה שמבדיל אותה מהרכב הוא שמחזורי החיים של האובייקטים אינם קשורים. ב אחרת הערכים יכולים לשרוד בנפרד שמשמעותו סיום ישות אחת לא ישפיע על הישות השנייה. שניהם יכולים להתקיים באופן עצמאי זה מזה. לכן, זה מכונה לעתים קרובות אסוציאציה לשבוע.

בואו ניקח דוגמא של שחקן וקבוצה. שחקן שהוא חלק מהקבוצה יכול להתקיים גם כשהקבוצה מפסיקה להתקיים.הסיבה העיקרית לכך שאתה זקוק לצבירה היא לשמור על שימוש חוזר בקוד.

זה מביא אותנו לסוף מאמר זה בו למדנו על האגודה .

אם מצאת מאמר זה בנושא 'Association in Java' רלוונטי, עיין בכתובת חברת למידה מקוונת אמינה עם רשת של יותר מ -250,000 לומדים מרוצים הפרוסים ברחבי העולם. אם אתה נתקל בשאלות כלשהן, אל תהסס לשאול את כל השאלות שלך בקטע ההערות של 'אגודה בג'אווה' והצוות שלנו ישמח לענות.