Java Programının Çıktısı | 7'yi ayarla

Zorluk seviyesi: Orta Aşağıdaki Java Programlarının çıktısını tahmin edin. Program 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  ();      }   }   
Seçenekler : A) 20 B) 100 C) 1000 D) 2 Cevap: A) 20 Açıklama : Burada sınıf örneği değişkeni name(num) ile aynıdır hesap() yöntem yerel değişken adı(num). Yani sınıf örneği değişkenine referans vermek için hesap() yöntem Bu anahtar kelime kullanılır. Yani açıklamada this.num = sayı * 10 bir değeri 2 olan yöntemin yerel değişkenini temsil eder ve bu.num başlangıç ​​değeri 100 olan sınıf örneği değişkenini temsil eder. baskıNum() adı sınıf örneği değişkeniyle aynı olan yerel bir değişkene sahip olmadığından doğrudan kullanabiliriz. bir örnek değişkenine referans vermek için bu.num kullanılabilir.   Program 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  ;      }   }   
Seçenekler : A) Çıktı doğrudur ve MyStuff, Object.equals() sözleşmesini yerine getirir. B) Çıktı yanlıştır ve MyStuff, Object.equals() sözleşmesini yerine getirir. C) Çıktı doğrudur ve MyStuff, Object.equals() sözleşmesini yerine getirmiyor. D) Çıktı yanlıştır ve MyStuff, Object.equals() sözleşmesini yerine getirmiyor. Cevap : C) Çıktı doğrudur ve MyStuff, Object.equals() sözleşmesini yerine getirmiyor. Açıklama : Gibi eşittir(Nesne nesnesi) Object sınıfındaki yöntem, iki nesneyi eşdeğerlik ilişkisi temelinde karşılaştırır. Ama burada biz sadece nesnenin boş olup olmadığını onaylıyoruz. Object.equals() sözleşme. Gibi m1 null true değil yazdırılacaktır.   Program 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  ();      }   }   
Seçenekler : A) alfa beta b b B) alfa beta a b C) beta alfa b b D) beta alfa a b Cevap : A) alfa beta b b Açıklama : Açıklama yeni Beta().go() iki aşamada yürütülür. İlk aşamada Beta sınıf yapıcısı çağrılır. Hiçbir örnek üye mevcut değil Beta sınıf. yani şimdi Beta sınıf yapıcısı yürütülür. Gibi Beta sınıf uzanır Alfa sınıf yani çağrı gider Alfa varsayılan olarak ilk ifade olarak sınıf yapıcısı (derleyici tarafından konur) süper() içinde Beta sınıf yapıcısı. Şimdi bir örnek değişken olarak ( tip ) içinde mevcut Alfa sınıf böylece hafıza alacak ve şimdi Alfa sınıf yapıcısı yürütülür ve ardından return çağrısı yapılır Beta sınıf yapıcısı sonraki ifade. Bu yüzden alfa beta basılmıştır. İkinci aşamada Gitmek() Bu nesne üzerinde yöntem çağrılır. Tek bir değişken olduğundan ( tip ) değeri olan nesnede A . Yani şu şekilde değiştirilecek: B ve iki kez basıldı. süper anahtar kelime burası hiçbir işe yaramaz.   Program 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  );      }   }   
Seçenekler : A) -1 B) 3 C) 4 D) A StringIndexOutOfBoundsException çalışma zamanında atılır. Cevap : C) 4 Açıklama : add(Dize dizisi) method str'yi şuna birleştirir: s1 . alt dize(int dizini) yöntemi, String'i verilen dizinden sonuna kadar döndürür. Ancak döndürülen dizeyi saklayacak herhangi bir String değişkeni olmadığından yok edilecek. indexOf(Dize s2) yöntem, ilk oluşum indeksini döndürür s2 . Yani 4, s1='JavaLove' olarak yazdırılır.   Program 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  ();      }   }   
Seçenekler : A) Yazma... B) Kitap yazma C) Kod yazma D) Derleme başarısız Cevap : B) Kitap yazmak Açıklama : Statik yöntemler geçersiz kılınamadığından, hangi sınıf nesnesinin oluşturulduğu önemli değildir. Gibi A bir Yazar başvurulan tür yani her zaman Yazar sınıf yöntemi çağrılır. Eğer kaldırırsak yazmak() yöntem Yazar o zaman sınıf Yazar sınıf yöntemi şu şekilde adlandırılır: Yazar sınıf uzanır Yazar sınıf.