logo

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.