פלט של תוכנית Java | סט 6
רמת קושי: בינוני
חזה את הפלט של תוכניות Java הבאות.
תוכנית 1: שרשרת קונסטרוקטורים
Java class First { public First () { System . out . println ( 'a' ); } } class Second extends First { public Second () { System . out . println ( 'b' ); } } class Third extends Second { public Third () { System . out . println ( 'c' ); } } public class MainClass { public static void main ( String [] args ) { Third c = new Third (); } }
תְפוּקָה
a b c
הֶסבֵּר: כאשר אובייקט 'שלישי' נוצר לפני קריאה לבנאי ברירת המחדל של שְׁלִישִׁי class בנאי ברירת המחדל של super class כלומר. שְׁנִיָה מחלקה נקראת ואז שוב לפני בנאי ברירת המחדל של בנאי ברירת המחדל של מחלקה סופר של רֵאשִׁית הכיתה נקראת. ומכאן שהפלט הוא בסדר a b c.
תוכנית 2: אתחול משתנה וביצוע קונסטרוקטור
Java class First { int i = 10 ; public First ( int j ) { System . out . println ( i ); this . i = j * 10 ; } } class Second extends First { public Second ( int j ) { super ( j ); System . out . println ( i ); this . i = j * 20 ; } } public class MainClass { public static void main ( String [] args ) { Second n = new Second ( 20 ); System . out . println ( n . i ); } }
תְפוּקָה
10 200 400
הֶסבֵּר: מכיוון שבמחלקה 'שניה' אין לו 'i' משלו, המשתנה עובר בירושה ממחלקת העל. גם הבנאי של האב נקרא כאשר אנו יוצרים אובייקט של שְׁנִיָה.
תוכנית 3: מופע של עם Iterators
Java import java.util.* ; class Geeks { public static void main ( String [] args ) { Object i = new ArrayList (). iterator (); System . out . print (( i instanceof List ) + ' ' ); System . out . print (( i instanceof Iterator ) + ' ' ); System . out . print ( i instanceof ListIterator ); } }
תְפוּקָה
false true false
הֶסבֵּר: ה iterator() השיטה מחזירה איטרטור על האלמנטים ברשימה ברצף הנכון היא לא מחזירה אובייקט List או ListIterator. א ListIterator ניתן להשיג על ידי הפעלת שיטת listIterator.
תוכנית 4: חריגה של התחלה ועצירה של שרשור
Java class ThreadEx extends Thread { public void run () { System . out . print ( 'Hello...' ); } public static void main ( String args [] ) { ThreadEx T1 = new ThreadEx (); T1 . start (); T1 . stop (); T1 . start (); } }
תְפוּקָה:
Run Time Exception
הֶסבֵּר: לא ניתן לפתוח שרשור יותר מפעם אחת. יִעוּד הַתחָלָה() שיטה על חוט נעצר גורם UnlegalThreadStateException .