logo

Java programos išvestis | 7 rinkinys

Sunkumo lygis: Vidutinis Numatykite šių Java programų išvestį. 1 programa: 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();  } } 
Parinktys: A) 20 B) 100 C) 1000 D) 2 Atsakymas: A) 20 Paaiškinimas: Čia klasės egzemplioriaus kintamojo pavadinimas (skaičius) yra toks pat kaip calc () metodas vietinio kintamojo pavadinimas(skaičius). Taigi, norint nurodyti klasės egzempliorių kintamąjį iš calc () metodas tai naudojamas raktinis žodis. Taigi pareiškime tai.skaičius = skaičius * 10 a reiškia vietinį metodo kintamąjį, kurio reikšmė yra 2 ir tai.nr reiškia klasės egzempliorių kintamąjį, kurio pradinė reikšmė yra 100. Dabar į printNum() metodas, nes jis neturi vietinio kintamojo, kurio pavadinimas yra toks pat kaip klasės egzemplioriaus kintamasis, todėl galime naudoti tiesiogiai a nors nurodyti egzemplioriaus kintamąjį tai.nr galima naudoti.   2 programa: 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;  } } 
Parinktys: A) Išvestis teisinga ir MyStuff atitinka Object.equals() sutartį. B) Išvestis klaidinga ir MyStuff atitinka Object.equals() sutartį. C) Išvestis yra teisinga ir MyStuff NEįvykdo Object.equals() sutarties. D) Išvestis klaidinga ir MyStuff NEįvykdo Object.equals() sutarties. Atsakymas : C) Išvestis yra teisinga ir MyStuff NEįvykdo Object.equals() sutarties. Paaiškinimas: Kaip lygus (objekto objektas) Objektų klasės metodas lygina du objektus, remdamasis lygiavertiškumo ryšiu. Bet čia mes tik patvirtiname, kad objektas yra niekinis arba ne. Taigi jis neatitinka Object.equals() sutartis. Kaip m1 nėra nulis true bus išspausdintas.   3 programa: 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();  } } 
Parinktys: A) alfa beta b b B) alfa beta a b C) beta alfa b b D) beta alfa a b Atsakymas : A) alfa beta b b Paaiškinimas: Pareiškimas nauja Beta().go() vykdoma dviem etapais. Pirmoje fazėje Beta vadinamas klasės konstruktorius. Nėra egzemplioriaus nario Beta klasė. Taigi dabar Beta vykdomas klasės konstruktorius. Kaip Beta klasė pratęsiama Alfa klasė, todėl skambutis į Alfa klasės konstruktorius kaip pirmasis sakinys pagal numatytuosius nustatymus (pateikiamas kompiliatoriaus). super () esančiame Beta klasės konstruktorius. Dabar kaip vieno egzemplioriaus kintamasis ( tipo ) yra Alfa klasė, todėl ji gaus atmintį ir dabar Alfa vykdomas klasės konstruktorius, tada iškviečiamas grįžti į Beta klasės konstruktoriaus kitas teiginys. Taigi alfa beta yra atspausdintas. Antrame etape eik () Šiam objektui iškviečiamas metodas. Kadangi yra tik vienas kintamasis ( tipo ) objekte, kurio vertė yra a . Taigi jis bus pakeistas į b ir atspausdinta du kartus. The super raktažodis čia jokios naudos.   4 programa: 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);  } } 
Parinktys: A) -1 B) 3 C) 4 D) A StringIndexOutOfBoundsException yra išmestas vykdymo metu. Atsakymas : C) 4 Paaiškinimas: pridėti (String str) metodas sujungti str prie s1 . The poeilutė (int index) metodas grąžina eilutę nuo nurodyto indekso iki galo. Tačiau kadangi nėra jokio eilutės kintamojo, kuriame būtų saugoma grąžinta eilutė, ji bus sunaikinta. Dabar indexOf (eilutė s2) metodas grąžina pirmojo pasireiškimo indeksą s2 . Taigi 4 atspausdintas kaip s1='JavaLove'.   5 programa: 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();  } } 
Parinktys: A) Rašymas... B) Knygos rašymas C) Kodo rašymas D) Kompiliavimas nepavyksta Atsakymas : B) Rašymo knyga Paaiškinimas: Kadangi statinių metodų negalima nepaisyti, nesvarbu, kurios klasės objektas yra sukurtas. Kaip a yra a Autorius nurodytas tipas taip visada Autorius vadinamas klasės metodas. Jei pašalinsime rašyti () metodas iš Autorius tada klasė Rašytojas klasės metodas vadinamas kaip Autorius klasė pratęsiama Rašytojas klasė.