חקר ירושה בשפת התכנות של Java

חקר ירושה בשפת התכנות של Java

ירושה היא אחד ממושגי הליבה של תכנות מונחה עצמים. בתכנות, המילה ירושה מייצגת מערכת יחסים שבה כיתת ילדים מניחה את מצבה והתנהגותה של כיתת הורים.





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





העבר את חלונות 10 למחשב חדש

איך עובדת ירושה

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





דוגמה בעולם האמיתי לאופן בו עובדת הירושה תהיה התחשבות בפירות. זוהי תווית רחבה המשמשת לאפוף מגוון פריטים שונים.

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



כך עובדת הירושה.

שימוש בירושה ב- Java

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





לדוגמה, C ++ היא גם שפת תכנות מונחה עצמים . C ++ תומך במה שמכונה ירושה מרובה, בעוד ש- Java תומך רק בירושה אחת.

המשמעות של זה היא שב- Java כיתת הורים יכולה להכיל הרבה כיתות ילדים, אך לכל כיתת ילדים יכולה להיות רק מחלקת הורים יחידה (ירושה יחידה). עם זאת, יש דרך להשיג ירושה מרובה עקיפה בג'אווה, על ידי יצירת מערכת יחסים של סבא, הורה וילד.





יצירת מחלקת ההורים בג'אווה

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

דוגמא לשיעור הורות פירות


public class Fruit {
//Variable Declaration
protected String seed;
protected String skinColor;
protected String taste;
//Default Constructor
public Fruit(){
seed = '';
skinColor ='';
taste ='';
}
//Primary Constructor
public Fruit(String seed, String skinColor, String taste){
this.seed = seed;
this.skinColor = skinColor;
this.taste = taste;
}
//getters and setters
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public String getSkinColor() {
return skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
//eat method
public void eat(){
//general code on how to eat a fruit
}
//juice method
public void juice() {
//general code on how to juice a fruit
}
}

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

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

יצירת שיעורי ילדים בג'אווה

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

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

כתובת ילדים בכיתה כתום


public class Orange extends Fruit{
//variable declaration
private int supremes;
//default constructor
public Orange() {
supremes = 0;
}
//primary constructor
public Orange(String seed, String skinColor, String taste, int supremes){
super(seed, skinColor, taste);
this.supremes = supremes;
}
//getters and setters
public int getsupremes() {
return supremes;
}
public void setsupremes(int supremes) {
this.supremes = supremes;
}
//eat method
public void eat(){
//how to eat an orange
}
//juice method
public void juice() {
//how to juice and orange
}
//peel method
public void peel(){
//how to peel an orange
}
}

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

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

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

הוספת שיטת הקליפה לשיטות האוכל והמיץ הקיימות היא גם הגיונית מכיוון שלמרות שלא ניתן לקלף את כל הפירות, תפוזים לרוב קלופים.

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

בוני התפקידים משחקים בירושה

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

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

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

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

עכשיו אתה יכול להשתמש בירושה ב- Java

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

קרדיט תמונה: Andreas Wohlfahrt / Pexels

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל כיצד לארגן את הקוד מונחה האובייקט שלך בירושה

הכוונה נכונה לתכנות מונחה עצמים פירושה שאתה צריך לדעת על ירושה וכיצד היא יכולה לפשט את הקידוד ולצמצם טעויות.

קרא הבא
נושאים קשורים
  • תִכנוּת
  • ג'אווה
  • תכנות מונחה עצמים
על הסופר קדישא קין(פורסמו 21 מאמרים)

Kadeisha Kean היא מפתחת תוכנה מלאה וכותבת טכנית/טכנולוגית. יש לה את היכולת המובהקת לפשט כמה מהמושגים הטכנולוגיים המורכבים ביותר; לייצר חומר שניתן להבין אותו בקלות על ידי כל טירון טכנולוגי. היא נלהבת לכתוב, לפתח תוכנות מעניינות ולטייל ברחבי העולם (באמצעות סרטים דוקומנטריים).

עוד מ- Kadeisha Kean

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה