הפשטה של ​​Java - מאסטרינג OOP עם הפשטה בג'אווה



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

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

אעסוק בהמשך הנושאים במאמר זה:





עקיפה ועומס יתר בג'אווה

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



הפשטה ב- OOP

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

x = y + z

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



מהי הפשטת Java?

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

שיחות - Java Abstraction -Edureka

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

א) כיתה מופשטת

ב) ממשק

בואו נבין מושגים אלה ביתר פירוט.

כיתה מופשטת

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

הערה: אתה יכול להשיג 0-100% הפשטה באמצעות מעמד מופשט.

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

בואו נסתכל על התחביר של מעמד מופשט:

ספורט קלאסי מופשט {// ספורט קלאסי מופשט תקציר ריק () // שיטה מופשטת}

מִמְשָׁק

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

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

צורת ממשק ציבורי {לצייר חלל ציבורי () getArea כפול ציבורי ()}

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

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

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

מחלקה ציבורית מעגל מיישם צורה {רדיוס כפול פרטי מעגל ציבורי (r כפול) {this.radius = r} רישום ריק () {System.out.println ('מעגל ציור')} ציבורי כפול ציבורי getArea () {החזר Math.PI * this.radius * this.radius} כפול ציבורי getRadius () {להחזיר this.radius}} מחלקה ציבורית מבחן {public static void main (String args []) {Shape c = Circle new (8) c.draw () System. out.println ('Area =' + c.getArea ())}}

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

כיצד להשתמש בתמונות ציבוריות

דוגמה בזמן אמת להפשטה בג'אווה

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

ממשק ציבורי ספורט {void play ()} // כעת ניצור מחלקה בשם 'בדמינטון' בכיתה ציבורית בדמינטון מיישמת ספורט {@Override play public void () {System.out.println ('Playing badminton')}} // בשלב הבא בואו ליצור את הכיתה האחרונה 'כדורגל' בכדורגל בכדורגל מיישמת ספורט {@Override play public void () {System.out.println ('משחק כדורגל')}

השלב האחרון הוא ליצור מחלקה ראשית בשם 'SportInterface'.

ציבור SportInterface {main static public void main (String args []) {// הקוד שלך כאן}}

כאשר אתה מבצע את התוכנית לעיל, הפלט יהיה כמוצג להלן:

משחק בדמינטון ------------------- משחק כדורגל

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

הפשטה לעומת אנקפסולציה

הַפשָׁטָה כימוס
פותר את הבעיה ברמת העיצובפותר את הבעיה ברמת היישום
משמש להסתרת נתונים לא רצויים ולמתן תוצאות רלוונטיותאנקפסולציה פירושה הסתרת הקוד והנתונים ליחידה אחת כדי להגן על נתונים מהעולם החיצון
פריסה חיצונית - משמשת מבחינת העיצובפריסה פנימית - משמשת מבחינת היישום

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

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

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