» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
שאלות סיכום
דף ראשי  מתחילים  חברים בהֵדגֵם, חברים במחלקה, בנאים וביצוע סיום  שאלות סיכום גרסה להדפסה

 

שאלות סיכום

 

ש: ב‑Java מקובל להשתמש במשתני מחלקה יחד עם מילת המפתח ________ על מנת ליצור משתנים שמתנהגים כקבועים. השלם.

 

ת: final.

 

ש: ב‑Java מילת המפתח _________ משמשת על מנת להצהיר על משתנה מחלקה. השלם.

 

ת: static.

 

ש: ב‑Java מילת המפתח _________ משמשת על מנת להצהיר על מתודת מחלקה. השלם.

 

ת: static.

 

ש: כאשר אתה כולל מתודה בהגדרת המחלקה ב‑Java מבלי להשתמש במילת המפתח static, התוצאה תהיה יצירת אובייקטים של אותה מחלקה שיכילו מתודת המופע: אמת או שקר?
אם שקר, הסבר מדוע.

 

ת: אמת.

 

ש: בדרך כלל, כל אובייקט מכיל עותק משלו של כל מתודת המופע: אמת או שקר?

 

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

 

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

 

ת: אמת.

 

ש: מתודות מופע מופעלות ב‑Java באמצעות שם האובייקט, נקודתיים, ושם המתודה,
כמתואר למטה: אמת או שקר? אם שקר, הסבר מדוע.

 

myObject:myInstaceMethod()

 

ת: שקר. צריך להשתמש באופרטור הנקודה, ולא בנקודתיים.

 

ש: ב‑Java, למתודות המופע יש גישה הן למשתני מופע והן למשתני מחלקה: אמת או שקר?
אם שקר, הסבר מדוע.

 

ת: אמת.

 

ש: ב‑Java, למתודות מחלקה יש גישה הן למשתני מופע והן למשתני מחלקה: אמת או שקר?
אם שקר, הסבר מדוע.

 

ת: שקר. מתודות מחלקה מסוגלות לגשת רק לחברים אחרים במחלקה.

 

ש: מהם שני המאפיינים העיקריים של מתודות מחלקה?

 

ת: 1. מתודות מחלקה מסוגלות לגשת רק לחברים אחרים במחלקה. 2.
ניתן לגשת למתודות מחלקה רק באמצעות שם
המחלקה. אין צורך באובייקט של המחלקה על מנת לגשת אליהן.

 

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

 

MyClass:myClassMethod()

 

ת: שקר. צריך להשתמש באופרטור הנקודה, ולא בנקודתיים.

 

ש: מה הכוונה במושג מתודות מועמסות?

 

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

 

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

 

ת: שקר. הקביעה נעשית בזמן ההידור.

 

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

 

ת: אמת.

 

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

 

ת: אמת.

 

ש: למה נועד בנאי פרמטרי?

 

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

 

ש: אוסף מסוים של משתני המופע ניתן לאתחל בכמה דרכים, תוך שימוש בבנאים מועמסים:
אמת או שקר? אם שקר, הסבר מדוע.

 

ת: אמת.

 

ש: אין זה הכרחי לספק בנאי ב‑Java: אמת או שקר? אם שקר, הסבר מדוע.

 

ת: אמת.

 

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

 

ת: אמת.

 

ש: ב‑Java, אם סיפקת בנאי כלשהו, יותר לא יסופק עבורך בנאי ברירת המחדל: אמת או שקר?
אם שקר, הסבר מדוע.

 

ת: אמת.

 

ש: ב‑Java, אם אתה זקוק לבנאי פרמטרי וגם לבנאי שאינו מקבל פרמטרים
(שנהוג לכנותו בנאי ברירת המחדל), עליך לספק את שניהם: אמת או שקר? אם שקר, הסבר מדוע.

 

ת: אמת.

 

ש: ב‑Java ניתן ליצור אובייקטים בזיכרון הסטטי בזמן הידור, או להשתמש באופרטור new על מנת לבקש זיכרון ממערכת ההפעלה בזמן ריצה ולהשתמש בבנאי כדי ליצור את האובייקט באותו זיכרון: אמת או שקר? אם שקר, הסבר מדוע.

 

ת: שקר. ב‑Java ניתן ליצור אובייקטים רק על ה‑ ערימה בזמן ריצה.

 

ש: הבא קטע קוד המכיל הוראה בודדת, שממחיש את השימוש האופייני בבנאי כדי להצהיר,
ליצור ולאתחל אובייקט ב‑
Java. השתמש בבנאי פרמטרי המקבל שלושה פרמטרים מטיפוס int.

 

ת:

MyClass myObject = new MyClass(1,2,3);

 

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

 

ת:

MyClass myObject = new MyClass();

 

ש: אילו שלוש פעולות מבצעת ההוראה הבאה?

MyClass myObject = new MyClass(1,2,3);

 

ת: ההוראה מבצעת שלוש פעולות יחד:

·       מצהירה על אובייקט באמצעות הודעה למהדר על שמו של האובייקט.

·       יוצרת את האובייקט באמצעות האופרטור new כדי להקצות זיכרון שיכיל את האובייקט החדש.

·       מאתחלת את האובייקט באמצעות קריאה לבנאי בשם MyClass.

 

ש: ב‑Java, אם תנסה ליצור אובייקט וה‑JVM אינו מסוגל להקצות את הזיכרון הדרוש,
המערכת _______________________________. השלם.

 

ת: תזרוק OutOfMemoryError.

 

ש: קטע הקוד הבא הוא קריאה חוקית למתודה: אמת או שקר? אם שקר, הסבר מדוע.

 

obj.myFunction(new myClassConstructor(1,2,3) );//Java version

 

ת: אמת.

 

ש: ב‑Java, כאשר מתחיל ביצוע של מתודה, כל הפרמטרים נוצרים כמשתנים מקומיים מטיפוס automatic: אמת או שקר? אם שקר, הסבר מדוע.

 

ת: אמת.

 

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

obj.myFunction(new myClassConstructor(1,2,3);//Java version

 

ת: הוא יהיה מוּעָד לאיסוף אשפה.

 

ש: ב‑Java מצהירים על בנאי ומשתמשים בו בדיוק כמו בכל מתודה אחרת במחלקה שלך,
מלבד העובדה ש______________________. השלם.

 

ת: לא מציינים את הטיפוס המוחזר ולא כוללים בו הוראת return .

 

ש: שמו של הבנאי חייב להיות זהה לשם של ה_________. השלם.

 

ת: מחלקה.

 

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

 

ת: בדרך כלל, תרצה שתת-המחלקה תפעיל את הבנאי של מחלקת-העל בתחילה.

 

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

 

ת:      super(optional parameters);

 

ש: לכל אובייקט יש מתודת finalize היורשת מהמחלקה _________. השלם.

 

ת: Object.

 

ש: לפני שאובייקט נתבע על ידי אוסף האשפה, נקראת עבורו מתודת ________. השלם.

 

ת: finalize.

 

ש: ב‑Java ההורס נקרא תמיד כאשר אובייקט חורג מהטווח: אמת או שקר? אם שקר, הסבר מדוע.

 

ת: שקר. Java אינה תומכת במושג ההורס.

 

ש: כתוב תוכנית Java העונה על הדרישות ההבאות.

 

מבלי להיעזר בפתרון הניתן בהמשך, כתוב אפליקציית Java אשר ממחישה:

1. יצירת אובייקט באמצעות קריאה לבנאי ברירת המחדל.

2. יצירת אובייקט באמצעות קריאה לבנאי פרמטרי כפרמטר בקריאה לפונקציה.

 

 /*File SampProg18.java from lesson 42
Copyright 1997, R.G.Baldwin
Without viewing the solution that follows, write a Java
application that illustrates:
1.  Instantiating an object by calling the default 
    constructor.
2.  Instantiating an object by calling a parameterized 
    constructor as a parameter to a function call.

The program should display the following output:

Starting Program
Object contains 100
Terminating, Baldwin
**********************************************************/

class TestClass{
  int instanceVar;
  TestClass(int inData){//parameterized constructor
    instanceVar = inData;//put inData in instance variable
  }//end parameterized constructor

  void showInstanceVar(){
    System.out.println(
      "Object contains " + instanceVar);
  }//end showInstanceVar
}//end TestClass

class SampProg18 { //define the controlling class
  public static void main(String[] args){ //main method
    System.out.println("Starting Program");
  
    //Instantiate obj of this type by calling default
    // constructor
    SampProg18 obj = new SampProg18();
  
    //Call function with call to parameterized constructor 
    // as a parameter
    obj.myFunction(new TestClass(100));
    System.out.println("Terminating, Baldwin");
  }//end main

  //The following function receives an object and calls 
  // one of its methods to display the data contained in
  // the object.
  void myFunction(TestClass objIn){
    objIn.showInstanceVar();
  }//end myFunction
}//End SampProg18 class.  

 

ש: כתוב תוכנית Java העונה על הדרישות ההבאות.

 

מבלי להיעזר בפתרון הניתן בהמשך, כתוב אפליקציית Java אשר ממחישה את השימוש ב‑ java.lang.system.runFinalizersOnExit() .

 

/*File SampProg19.java from lesson 42
Copyright 1997, R.G.Baldwin
Without viewing the solution which follows, write a Java
application that illustrates the use of 
java.lang.system.runFinalizersOnExit().

The output from the program should be:
  
Terminating, Baldwin
Finalizing TestClassA object
Finalizing TestClassB object
**********************************************************/

class TestClassA{
  protected void finalize(){//override finalization method
    System.out.println("Finalizing TestClassA object");
  }//end overridden finalize() method
}//end TestClassA

class TestClassB{
  protected void finalize(){//override finalization method
    System.out.println("Finalizing TestClassB object");
  }//end overridden finalize() method
}//end TestClassB

class SampProg19{//controlling class
  public static void main(String[] args){//main method
    //Guarantee finalization of all objects on exit
    System.runFinalizersOnExit(true);
    
    //Instantiate two objects to be finalized
    TestClassA objA = new TestClassA();
    TestClassB objB = new TestClassB();
    System.out.println("Terminating, Baldwin");
  }//end main
}//end class SampProg19
 05-01-04 / 20:04  נוצר ע"י רונית רייכמן  בתאריך 
 ביצוע סיום - הקודםהבא - עוד בנושא ממשקים 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 2