מה זה Generics בג'אווה? - מדריך למתחילים



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

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

להלן רשימת הנושאים שאעסוק במאמר זה:





מה זה Generics בג'אווה?

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

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



מדוע Java Generics?

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

FrameworkHierarchy - גנריות בג

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



תוכנית תזמון רובין בסביבות ג

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

סוגים של Java Generics

ישנן 4 דרכים שונות בהן ניתן להחיל גנריות ב- Java והן כדלקמן:

  1. מחלקת סוג גנרית
  2. ממשק כללי
  3. שיטה גנרית
  4. קונסטרוקטור גנרי

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

1. סוג סוג כללי

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

class Genericclass {אובייקט פרטי x ערכת חלל ציבורית (אובייקט x) {this.x = x} אובייקט ציבורי get () {return x}}

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

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

class Genericclass {// T מייצג 'סוג' פרטי T x סט חלל ציבורי (T x) {this.x = x} ציבורי T get () {return x}}

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

כיצד להמיר כפול ל- int java
מופע Genericclass = חדש Genericclass () instance.set ('Edureka') instance.set (10) // זה יעלה שגיאת זמן הידור

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

2. ממשק כללי

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

// ממשק הגדרת ממשק הגנרי GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // מחלקה המיישמת כיתת ממשק כללי Genericclass מיישמת GenericInterface {Public Integer PerformExecution (String x) {// קוד ביצוע} פומבי מחרוזת ReverseExecution ( מספר שלם x) {// קוד ביצוע}}

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

3. שיטות גנריות

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

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

ספירת int סטטי ציבורית ציבורית AllOccurrences (T [] list, T element) {int count = 0 if (element == null) {for (T listElement: list) if (listElement == null) count ++} else {for (T listElement: list ) if (element.equals (listElement)) count ++} ספירת החזרות}

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

אנלוגיה זו דומה גם לבנאי. בואו ניקח דוגמה לבנאי הגנרי ונבין איך זה עובד.

4. קונסטרוקטור גנרי

לבנאי הוא גוש קוד שמאתחל את האובייקט החדש שנוצר. א בּוֹנֶה דומה לשיטת מופע ב- J ava אבל זו לא שיטה מכיוון שאין לה סוג החזרה. הקונסטרוקטור יש שם זהה לכיתה ונראה כך ב- J ava קוד. עכשיו בואו ניקח דוגמא ונבין איך זה עובד.

מחלקה מימד {אורך T פרטי

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

עכשיו בואו נתקדם הלאה ונבחן את היתרונות של Generics בג'אווה.

יתרונות הגנריות בג'אווה

1. שימוש חוזר בקוד

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

2. אין צורך בהטלת סוגים בודדים

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

3. הטמעת אלגוריתם לא גנרי

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

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

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

כיצד להשתמש בפלטפורמת הענן של

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