إخراج برنامج جافا | مجموعة 7

مستوى الصعوبة : متوسط ​​توقع مخرجات برامج Java التالية. البرنامج 1 : Java
   public     class   Calculator   {      int     num     =     100  ;      public     void     calc  (  int     num  )     {     this  .  num     =     num     *     10  ;     }      public     void     printNum  ()     {     System  .  out  .  println  (  num  );     }      public     static     void     main  (  String  []     args  )      {      Calculator     obj     =     new     Calculator  ();      obj  .  calc  (  2  );      obj  .  printNum  ();      }   }   
خيارات : أ) 20 ب) 100 ج) 1000 د) 2 الجواب: أ) 20 توضيح : هنا اسم متغير مثيل الفئة (num) هو نفسه احسب () اسم المتغير المحلي للطريقة (num). لذلك للإشارة إلى متغير مثيل الفئة من احسب () طريقة هذا يتم استخدام الكلمة الرئيسية. هكذا في البيان هذا العدد = العدد * 10 في أ يمثل المتغير المحلي للطريقة التي تبلغ قيمتها 2 و this.num يمثل متغير مثيل الفئة الذي تبلغ قيمته الأولية 100. الآن رقم الطباعة () الطريقة لأنها لا تحتوي على متغير محلي اسمه هو نفس متغير مثيل الفئة حتى نتمكن من استخدامه مباشرة في أ للإشارة إلى متغير المثيل بالرغم من ذلك this.num يمكن استخدامها.   البرنامج 2 : Java
   public     class   MyStuff   {      String     name  ;      MyStuff  (  String     n  )     {     name     =     n  ;     }      public     static     void     main  (  String  []     args  )      {      MyStuff     m1     =     new     MyStuff  (  'guitar'  );      MyStuff     m2     =     new     MyStuff  (  'tv'  );      System  .  out  .  println  (  m2  .  equals  (  m1  ));      }      @Override      public     boolean     equals  (  Object     obj  )      {      MyStuff     m     =     (  MyStuff  )     obj  ;      if     (  m  .  name     !=     null  )     {     return     true  ;     }      return     false  ;      }   }   
خيارات : أ) الناتج صحيح ويفي MyStuff بعقد Object.equals(). ب) الإخراج خاطئ ويفي MyStuff بعقد Object.equals(). ج) الناتج صحيح ولا يفي MyStuff بعقد Object.equals(). د) الإخراج خاطئ ولا يفي MyStuff بعقد Object.equals(). إجابة : ج) الناتج صحيح ولا يفي MyStuff بعقد Object.equals(). توضيح : مثل يساوي (كائن كائن) الطريقة في فئة الكائن تقارن كائنين على أساس علاقة التكافؤ. لكننا هنا نؤكد فقط أن الكائن فارغ أم لا، لذا فهو غير مكتمل كائن. يساوي () عقد. مثل م1 ليست فارغة صحيحا سيتم طباعتها.   البرنامج 3 : Java
   class   Alpha   {      public     String     type     =     'a '  ;      public     Alpha  ()     {     System  .  out  .  print  (  'alpha '  );     }   }   public     class   Beta     extends     Alpha   {      public     Beta  ()     {     System  .  out  .  print  (  'beta '  );     }      void     go  ()      {      type     =     'b '  ;      System  .  out  .  print  (  this  .  type     +     super  .  type  );      }      public     static     void     main  (  String  []     args  )      {      new     Beta  ().  go  ();      }   }   
خيارات : أ) ألفا بيتا ب ب ب) ألفا بيتا أ ب ج) بيتا ألفا ب ب د) بيتا ألفا أ ب إجابة : أ) ألفا بيتا ب توضيح : البيان بيتا الجديدة ().go () ينفذ على مرحلتين. في المرحلة الأولى بيتا يتم استدعاء منشئ الطبقة. لا يوجد عضو مثيل موجود في بيتا فصل. والآن بيتا يتم تنفيذ منشئ الفئة. مثل بيتا يمتد الصف ألفا فئة لذلك يذهب الاتصال إلى ألفا مُنشئ الفئة كعبارة أولى افتراضيًا (وضعها المترجم). ممتاز() في بيتا منشئ الطبقة. الآن كمتغير مثيل واحد ( يكتب ) موجود في ألفا فئة لذلك سوف تحصل على الذاكرة والآن ألفا يتم تنفيذ مُنشئ الفئة ثم استدعاء العودة إلى بيتا البيان التالي منشئ الطبقة. لذا ألفا بيتا تمت طباعته. في المرحلة الثانية يذهب() يتم استدعاء الأسلوب على هذا الكائن. حيث أن هناك متغير واحد فقط ( يكتب ) في الكائن الذي قيمته أ . لذلك سيتم تغييره إلى ب وطبع مرتين. ال الكلمة الرئيسية الفائقة هنا لا فائدة.   البرنامج 4 : Java
   public     class   Test   {      public     static     void     main  (  String  []     args  )      {      StringBuilder     s1     =     new     StringBuilder  (  'Java'  );      String     s2     =     'Love'  ;      s1  .  append  (  s2  );      s1  .  substring  (  4  );      int     foundAt     =     s1  .  indexOf  (  s2  );      System  .  out  .  println  (  foundAt  );      }   }   
خيارات : أ) -1 ب) 3 ج) 4 د) أ StringIndexOutOfBoundsException يتم طرحها في وقت التشغيل. إجابة : ج) 4 توضيح : إلحاق (سلسلة سلسلة) طريقة ربط str إلى S1 . ال سلسلة فرعية (فهرس كثافة العمليات) تقوم الطريقة بإرجاع السلسلة من الفهرس المحدد إلى النهاية. ولكن نظرًا لعدم وجود أي متغير سلسلة لتخزين السلاسل التي تم إرجاعها، فسيتم تدميرها الآن فهرس (سلسلة s2) طريقة إرجاع فهرس التواجد الأول لـ s2 . لذلك تتم طباعة 4 كـ s1='JavaLove'.   البرنامج 5 : Java
   class   Writer   {      public     static     void     write  ()      {      System  .  out  .  println  (  'Writing...'  );      }   }   class   Author     extends     Writer   {      public     static     void     write  ()      {      System  .  out  .  println  (  'Writing book'  );      }   }   public     class   Programmer     extends     Author   {      public     static     void     write  ()      {      System  .  out  .  println  (  'Writing code'  );      }      public     static     void     main  (  String  []     args  )      {      Author     a     =     new     Programmer  ();      a  .  write  ();      }   }   
خيارات : أ) الكتابة... ب) كتابة الكتاب ج) كتابة التعليمات البرمجية د) فشل التجميع إجابة : ب) كتابة الكتاب توضيح : نظرًا لأنه لا يمكن تجاوز الأساليب الثابتة، فلا يهم كائن الفئة الذي تم إنشاؤه. مثل أ هو أ مؤلف النوع المشار إليه دائمًا مؤلف تسمى طريقة الفصل . إذا قمنا بإزالة يكتب() الطريقة من مؤلف الطبقة ثم الكاتب تسمى طريقة الفصل باسم مؤلف يمتد الصف الكاتب فصل.