JavaRush /בלוג Java /Random-HE /ממשק ב-Java
vinsler
רָמָה

ממשק ב-Java

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

ממשק - ממשק

מה זה? דוגמה לרשימת ממשק (עם כללי):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
ממשק Crud Common (מ-CRUD: Create, Read, Update, Delete). אל תיבהלו, הכל די פשוט. הממשק הזה אומר שעבודה עם מסדי נתונים רבים מבוססת על העיקרון הבא: צריך להוסיף רשומה, לעדכן רשומה, למחוק ולמצוא את כל הרשומות. אתה תראה את זה עוד 100 פעמים ותכתוב כמעט את אותו ממשק אותו מספר פעמים. זה מיועד לציבור מכיוון שהוא חייב להיות מיושם על ידי הכיתה. מה זה אומר להיות מיושם על ידי כיתה ? הכל פשוט מאוד: עליו לתאר את כל השיטות של הממשק. הדוגמה הפשוטה ביותר ליישום בכיתה:
void add (T t) {
	bookstore.add(t);
}
במקום T t, גנרי מסוים יוחלף. בקצרה, זהו ה-TYPE של משתנה, וזו הסיבה שהוא מסומן לרוב כ-T = Type. בדוגמה שלנו, נניח שזה יכול להיות כך:
void add (Book book) {
	bookstore.add(book);
}
כמובן, במקום ספר ספר אתה יכול להחליף כל משתנה שאתה צריך עבור היישום שלך. כדי להבין, אתה יכול לדמיין תיאורטית ש-T = Object, ומכיוון שב-Java הכל הוא Object, אתה יכול גם להגדיר שם כל מחלקה/משתנים שלך. הצרה היחידה תתעורר בהמשך - חריגים אם המחלקה היא אפס וכו'. במילים שלו, זהו מבנה תוכנית מסוים שמגדיר את היחסים בין אובייקטים על ידי חלוקתם לחלקים התנהגותיים מסוימים. מטרת הממשק היא להגדיר פונקציונליות ליישום על ידי מחלקה. כלומר, תיאור של חתימות השיטה. בתוך הממשק יש שמות של מתודות שמחזירות ומכניסות ערכים, וזהו. ובכן, אתה עדיין יכול לייעד כמה משתנים שם, אבל הם הופכים מיד לסופיים סטטיים ציבוריים במרומז, וניתן לגשת אליהם מכל חלק של התוכנית. הממשק מתאר פעולות, ולכן אותן פעולות כלולות בו, כלומר. פונקציות או שיטות. למה זה נחוץ? מה זה מפשט או אילו יתרונות זה מספק? פישוט תיאור הפעולות וההתנהגות. אנחנו אומרים מה לעשות, אבל כל כיתה מיישמת איך לעשות את זה בעצמה. חסוך זמן בפרויקטים גדולים. ממשקים נוצרים במצבים שבהם אנו יודעים שעלינו לבצע משימה כלשהי, אך אופן ביצועה עשוי להשתנות. הממשק מתאר את שמות הפעולות - זה פשוט הכיוון של הפשטה כלשהי. אם כי יתכנו גם ממשקים ללא שיטות ושדות, כמו סמנים כמו Cloneable, Remote וכו'. בואו ניקח את הדוגמה האהובה על כולם לרכב. הממשק בו יתאר את הפעולות האפשריות של המכונית, סיבוב ההגה או כיוון התנועה, עלייה במהירות, שאר הבנזין וכו'. כלומר, אותן פעולות שממש כל מכונית יכולה לעשות. במילים אחרות, אנחנו יורדים לתוך הג'ונגל של השפלה לרמת היצירה הנמוכה ביותר של המכונית הראשונה ועם המוח שלנו אנחנו מבינים איך היא נוצרה ומה היה לה. באופן טבעי, אנו מתארים זאת באופן מופשט ורק לפעולות. מה היה במכונית הראשונה? היה הגה? זה היה, מה שאומר שהוא הסתובב לאנשהו, הכיוון של ההגה/תנועה. היו גלגלים? כן, זה אומר שנסעתי במהירות מסוימת, שינוי במהירות. זה כל הממשק. אבל באופן כללי, ממשקים נוצרים עבור יישום מסוים של פעולות מסוימות. הָהֵן. אנו כותבים תוכנית עבור אלה ספציפיים יותר מאשר עבור כל דבר אחר שאתה יכול לחשוב עליו. לכן, הממשקים עצמם יכילו שיטות ברורות וספציפיות יותר. כמובן שהם יהיו כמה שיותר מופשטים. ממשקים יכולים לעבור בירושה זה מזה כמחלקות.
interface MyInterface extends NotMyinterface;
ממשקים מיושמים בשיעורים. אתה יכול ליישם כמה ממשקים שאתה רוצה. שלא כמו ירושה, תורשה מאחד בלבד.
class NewClass extends OldClass implements MyInterface, NotMyinterface;
הָהֵן. המצאנו כמה פעולות, נתנו להם שמות, הזנו נתונים, החזרנו נתונים, כתבנו את כל זה בממשק, ואז יצרנו מחלקה והוספנו את הממשק שלנו למחלקה הזו, כלומר. יישם את הממשק שלנו בכיתה זו. יתר על כן, כל השיטות/פונקציות המתוארות בממשק חייבות להיות ביישום. ניתן לעשות זאת ישירות בממשק עצמו על ידי הוספת המילה default לפני השיטה וכתיבת המימוש ישירות בשיטה, כמו מחלקה. זה התאפשר עם גרסה 8 של Java. ניתן לעשות זאת גם במחלקה שתטמיע את הממשק הזה. ובכן, כתבנו את הממשק, הטמענו אותו בכיתה, פרסנו את היישום בכיתה, אנחנו יכולים להריץ אותו ולבדוק אותו. ניתן גם לקרוא בממשקים על:
  • שיטות סטטיות.
  • שיטות פרטיות. (חזרה על הקוד)
  • משתנים/קבועים.
  • ממשקים מקוננים.
אבל עדיף לעשות את זה מאוחר יותר, וזה גם מזיק למלא את הראש שלך יותר מדי. שאלה מעניינת, מה זה וולוו? מחלקה או ממשק?
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
בנוסף לממשקים, כדאי להמשיך על שיעורים ושיעורים מופשטים. אולי מאוחר יותר, כשיהיו לי עוד כמה שעות פנויות. ))) נ.ב: חבר'ה, אני מבקש את כל הביקורת מתחת לפוסט או ב-PM, אני מבין לגמרי שלכולם יש את זה))) ואני תמיד מעוניין לשמוע את זה, כי זו סיבה להיות קצת יותר טוב ו שוב להמשיך להתקדם. עם זה, תודה רבה לכולכם ובהצלחה בתכנות. )))
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION