Java programmas izvade | 7. komplekts

Grūtības pakāpe: Vidējs Prognozē šādu Java programmu izvadi. 1. programma: 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  ();      }   }   
Iespējas: A) 20 B) 100 C) 1000 D) 2 Atbilde: A) 20 Paskaidrojums: Šeit klases instances mainīgā nosaukums(num) ir tāds pats kā calc() metode lokālā mainīgā nosaukums(num). Tātad, lai atsauktos uz klases instances mainīgo no calc() metodi šis tiek izmantots atslēgvārds. Tātad paziņojumā this.num = num * 10 a apzīmē metodes lokālo mainīgo, kura vērtība ir 2 un šis.nr apzīmē klases instances mainīgo, kura sākotnējā vērtība ir 100. Tagad iekšā printNum() metodi, jo tai nav lokālā mainīgā, kura nosaukums ir tāds pats kā klases instances mainīgajam, lai mēs varētu tieši izmantot a lai atsauktos uz instances mainīgo, lai gan šis.nr var izmantot.   2. programma: 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  ;      }   }   
Iespējas: A) Izvade ir patiesa, un MyStuff izpilda Object.equals() līgumu. B) Izvade ir nepatiesa, un MyStuff izpilda Object.equals() līgumu. C) Izvade ir patiesa, un MyStuff NEizpilda Object.equals() līgumu. D) Izvade ir nepatiesa, un MyStuff NEpilda Object.equals() līgumu. Atbilde: C) Izvade ir patiesa, un MyStuff NEizpilda Object.equals() līgumu. Paskaidrojums: vienāds (Objekts objekts) Metode Object klasē salīdzina divus objektus, pamatojoties uz ekvivalences attiecību. Bet šeit mēs tikai apstiprinām, ka objekts ir nulle vai nav Tātad tas neatbilst Object.equals() līgums. Kā m1 nav null true tiks izdrukāts.   3. programma: 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  ();      }   }   
Iespējas: A) alfa beta b b B) alfa beta a b C) beta alfa b b D) beta alfa a b Atbilde: A) alfa beta b b Paskaidrojums: Paziņojums jauna Beta().go() izpilda divās fāzēs. Pirmajā fāzē Beta klases konstruktors tiek izsaukts. Vietnē nav neviena instances dalībnieka Beta klasē. Tātad tagad Beta klases konstruktors tiek izpildīts. Kā Beta klase pagarinās Alfa klase tāpēc zvans uz Alfa klases konstruktors kā pirmais paziņojums pēc noklusējuma (ieliek kompilators). super() sadaļā Beta klases konstruktors. Tagad kā viena gadījuma mainīgais ( veids ) atrodas iekšā Alfa klase, lai tas iegūs atmiņu un tagad Alfa klases konstruktors tiek izpildīts, pēc tam izsauciet atgriešanos Beta klases konstruktors nākamais paziņojums. Tātad alfa beta ir izdrukāts. Otrajā fāzē aiziet () metode tiek izsaukta šim objektam. Tā kā ir tikai viens mainīgais ( veids ) objektā, kura vērtība ir a . Tātad tas tiks mainīts uz b un izdrukāts divas reizes. The super atslēgvārds šeit nav nekāda labuma.   4. programma: 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  );      }   }   
Iespējas: A) -1 B) 3 C) 4 D) A StringIndexOutOfBoundsException tiek izmests izpildlaikā. Atbilde: C) 4 Paskaidrojums: pievienot (string string) metodesavienojiet str ar s1 . The apakšvirkne (indekss) metode atgriež virkni no dotā indeksa līdz beigām. Bet, tā kā nav neviena virknes mainīgā, lai saglabātu atgriezto virkni, tā tiks iznīcināta. Tagad indexOf(virkne s2) metode atgriež pirmās parādīšanās indeksu s2 . Tātad 4 tiek drukāts kā s1='JavaLove'.   5. programma: 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  ();      }   }   
Iespējas: A) Rakstīšana... B) Grāmatas rakstīšana C) Koda rakstīšana D) Kompilācija neizdodas Atbilde: B) Rakstīšanas grāmata Paskaidrojums: Tā kā statiskās metodes nevar ignorēt, nav nozīmes tam, kurš klases objekts ir izveidots. Kā a ir a Autors atsauces veids tik vienmēr Autors klases metodi sauc. Ja mēs noņemam rakstīt () metode no Autors klase tad Rakstnieks klases metodi sauc par Autors klase pagarinās Rakstnieks klasē.

Jums Varētu Patikt