JavaRush /Blog Jawa /Random-JV /Analisis pitakonan lan wangsulan saka wawancara kanggo pa...

Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa. Bagean 4

Diterbitake ing grup
Halo kabeh, dina iki aku terus nganalisa 250+ pitakonan wawancara kanggo pangembang Java. Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 4 - 1Bagean analisis sadurunge: pisanan , kapindho , katelu . Dadi ayo terus.

29. Iku bisa kanggo nggunakake bali ing konstruktor?

Sampeyan bisa, nanging tanpa nilai bali ing sisih tengen bali . Sing, sampeyan bisa nggunakake bali; minangka konstruksi tambahan sajrone petungan ing konstruktor supaya cepet rampung (ngganggu) eksekusi kode luwih lanjut lan ngrampungake initialization obyek kasebut. Contone, kita duwe kelas Cat , lan yen Cat ora duwe omah - isHomeless = true , kita kudu ngrampungake initialization lan ora ngisi kolom liyane (sawise kabeh, dheweke ora dingerteni, amarga kucing ora duwe omah):
public Cat(int age, String name, boolean isHomeless) {
   if (isHomeless){
       this.isHomeless = isHomeless;
       return;
   }
   this.isHomeless = isHomeless;
   this.age = age;
   this.name = name;
}
Nanging nalika nerangake nilai tartamtu, konstruktor ora bisa nggunakake bali kanggo ngasilake nilai amarga:
  • nalika ngumumake konstruktor sampeyan ora bakal duwe apa-apa kaya jinis bali;
  • Biasane, konstruktor diarani implisit sajrone instantiation;
  • Konstruktor dudu cara: iku mekanisme kapisah sing tujuane mung kanggo miwiti variabel conto, lan operator anyar tanggung jawab kanggo nggawe obyek .
Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 4 - 2

30. Iku bisa kanggo uncalan pangecualian saka konstruktor?

Konstruktor nangani pengecualian kanthi cara sing padha karo metode. Lan yen metode ngidini kita mbuwang pengecualian kanthi nulis mbuwang <ExceptionType> ing header metode , mula konstruktor ngidini kita nindakake iki, lan uga nalika marisi lan nemtokake konstruktor pewaris, kita bisa nggedhekake jinis pengecualian. Contone, IOException -> Exception (nanging ora kosok balene). Minangka conto kanggo mbuwang pangecualian dening konstruktor, ayo njupuk kelas Cat . Dadi, nalika nggawe, kita pengin ngetik jeneng lan umur saka konsol:
public Cat() throws IOException {
   BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
   this.name = reader.readLine();
   this.age = Integer.parseInt(reader.readLine());
}
Wiwit reader.readLine () mbuwang IOException, kita nemtokake ing header minangka pangecualian bisa di buwang.

31. Irah-irahan kelas kalebu unsur apa? Tulis tuladha

Ngomong babagan unsur-unsur sing nggawe header kelas, ayo deleng diagram cilik:
  • komponen wajib bakal ana ing kurung <>
  • opsional - ing {}
{pengubah akses kelas}{statisitas kelas}{finalitas kelas}{abstraksi kelas} <jeneng kelas> {warisan saka kelas Induk} {implementasi antarmuka} Dadi, apa sing kita duwe: {modifier akses kelas} - mung modifiers umum lan modifier akses sing ilang, yaiku, standar, kasedhiya kanggo kelas . {kelas statis} - statis minangka modifier sing nuduhake yen kelas iki statis, mung ditrapake kanggo kelas njero (kelas ing kelas liyane). {kelas finality} - kita elinga, iki modifier final , ing ngarsane kang kelas dadi non-diwarisaké (conto saka kothak - String ). {abstraksi kelas} - modifier - abstract , sing nuduhake yen kelas iki bisa uga duwe metode sing ora ditindakake. Modifier iki bertentangan karo modifier pungkasan , yaiku, mung siji sing bisa ana ing header kelas, amarga modifier abstrak nuduhake yen kelas sing diwenehi bakal diwarisake lan bagean abstrak bakal dileksanakake. Lan final nuduhake yen iki final (final) versi kelas, lan ora bisa dipun warisaken. Bener, nggunakake loro modifiers ing wektu sing padha bakal khayal, lan compiler ora ngidini kita nindakake iki. <class> minangka tembung kunci sing dibutuhake sing nuduhake deklarasi kelas. <class name> minangka jeneng kelas sing prasaja, yaiku pengenal kelas Jawa tartamtu. Jeneng kelas qualified kebak kasusun saka jeneng paket lengkap qualified + . + jeneng kelas prasaja. {warisan saka kelas Parent} - nemtokake kelas induk (yen ana) nggunakake tembung kunci ngluwihi . Contone, .. ngluwihi ParentClass . {interface implementation} - nemtokake antarmuka sing diimplementasikake kelas iki (yen ana) nggunakake tembung kunci implements . Contone: ... ngleksanakake FirstInterface, SecondInterface ... Inggih, minangka conto header kelas, nimbang header saka kelas Singa , kang marisi saka Cat lan ngleksanakake antarmuka WildAnimal :
public final class Lion extends Cat implements WildAnimal
Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 4 - 3

32. Isine header metode apa wae? Tulis tuladha

Maneh, nalika ndeleng unsur sing nggawe header metode, nimbang diagram cilik ing ngendi:
  • komponen wajib ana ing kurung <>
  • opsional - ing {}
{akses modifier}{method static}{method abstraction}{method finality}{sinkronisasi modifier} {native modifier}<return value><method name> <(> {method arguments} <)>{thrown exception} {access modifier } — kabeh modifiers akses kasedhiya kanggo cara: umum , dilindhungi , standar , pribadi . {metode statis} - statis minangka modifier sing nuduhake yen metode iki statis, yaiku, ora diikat menyang obyek, nanging menyang kelas. {method abstraction} yaiku modifier abstrak , sing nuduhake yen ora ana implementasine (awak) metode kasebut. Kanggo operasi sing bener, sampeyan uga butuh modifier abstrak kanggo kelas sing cara diwenehake. Kaya ing header kelas, modifier iki konflik karo modifier final , nanging saliyane iku, uga konflik karo modifier statis , amarga cara abstrak gawe katut overriding cara ing turunan, lan cara statis ora overridden. {finality of the method} - final - modifier sing nuduhake yen cara iki ora bisa diganti. {synchronization modifier} - disinkronake - modifier sing tegese cara iki dilindhungi saka akses simultan saka benang sing beda. Yen cara ora statis, iku nutup ing obyek iki mutex. Yen cara iku statis, nutup ing mutex saka kelas saiki. {native modifier} - native - modifier iki nuduhake yen cara kasebut ditulis ing basa pamrograman sing beda. <return value> yaiku jinis nilai sing kudu dibalekake dening metode kasebut. Yen ora bali apa-apa, batal . <jeneng metode> yaiku jeneng metode, pengenal ing sistem. {method arguments} yaiku argumen (parameter) sing ditindakake dening metode: perlu kanggo ngetrapake fungsine. {throwable exceptions} - throwsExceptionType - dhaftar pangecualian dicenthang sing cara iki bisa uncalan. Lan minangka conto header metode, aku bakal menehi iki:
public static void main(String[] args) throws IOException

33. Nggawe konstruktor standar ing obyek turunan yen ora ditetepake ing obyek dhasar (nanging konstruktor liyane ditetepake)

Aku ora ngerti pitakonan kasebut dhewe, nanging bisa uga tegese, contone, ing wong tuwa, kita duwe konstruktor khusus:
public Cat(int age, String name) {
   this.age = age;
   this.name = name;
}
Mulane, ing kelas leluhur, mesthine kudu nemtokake konstruktor sing bakal ngisi (nelpon) konstruktor induk:
public  class Lion extends Cat {

   public Lion(int age, String name) {
       super(age, name);
   }
}
Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 4 - 4

34. Kapan tembung kunci iki digunakake?

Ing Jawa, iki nduweni rong makna sing beda. 1. Minangka referensi kanggo obyek saiki, kaya iki.umur = 9 . Yaiku, iki nuduhake obyek sing diarani lan kode sing nggunakake iki nuduhake . Fungsi utama kanggo nambah maca kode lan ngindhari ambiguitas. Contone, yen jeneng kolom kelas internal lan argumen metode padha:
public void setName(String name) {
   this.name = name;
}
Yaiku, this.name minangka kolom saka jeneng obyek minangka argumen metode. Referensi iki ora bisa digunakake ing metode statis. 2. iki bisa digunakake ing konstruktor ing wangun telpon cara, kaya iki(nilai) . Ing kasus iki, iku bakal telpon kanggo konstruktor liyane saka kelas padha. Ing cendhak, sampeyan bisa nelpon loro konstruktor bebarengan nalika nggawe obyek:
public Cat(int age, String name) {
   this(name);
   this.age = age;
}

public Cat(String name) {
   this.name = name;
}
Nalika obyek Cat digawe lan konstruktor pisanan diarani, loro lapangan obyek bakal disebut lan kasil initialized. Ana sawetara nuansa:
  1. iki () mung dianggo ing konstruktor.
  2. A referensi kanggo konstruktor liyane kudu ing baris pisanan saka pamblokiran konstruktor (awak). Mulane, luwih saka siji (liyane) konstruktor saka kelas tartamtu ora bisa disebut ing siji konstruktor.
Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 4 - 5Conto liyane ana ing artikel iki .

35. Apa iku initializer?

Sa adoh aku ngerti, ing pitakonan iki kita ngomong bab pamblokiran initialization biasa lan statistik. Pisanan, ayo ngelingi apa initialization. Initialization yaiku nggawe, aktivasi, persiapan kanggo karya, netepake paramèter. Nggawa program utawa komponen menyang kahanan siyap dienggo. Nalika sampeyan ngelingi, sajrone nggawe obyek, variabel kelas bisa diwiwiti langsung nalika deklarasi:
class Cat {
   private int age = 9;
   private  String name = "Tom";
Utawa nyetel eksternal liwat konstruktor:
class Cat {
   private int age;
   private  String name;

   public Cat(int age, String name) {
       this.age = age;
       this.name = name;
   }
Nanging ana cara liya: nyetel variabel obyek internal liwat blok inisialisasi, sing katon kaya kurung kriting {} ing njero kelas, tanpa jeneng (kaya metode utawa konstruktor):
class Cat {
   private int age;
   private  String name;

   {
       age = 10;
       name = "Tom";
   }
Yaiku, blok inisialisasi minangka potongan kode sing dimuat nalika obyek digawe. Biasane, pamblokiran kuwi digunakake kanggo nindakake sawetara petungan Komplek sing perlu nalika loading kelas. Asil petungan kasebut bisa ditemtokake minangka nilai kanggo variabel. Kajaba iku, saliyane blok inisialisasi biasa, ana sing statis, sing katon padha, nanging duwe tembung kunci statis sadurunge kurungan kriting :
class Cat {
   private static int age;
   private static String name;

   static{
       age = 10;
       name = "Tom";
   }
Blok iki persis padha karo sing sadurunge. Nanging yen sing biasa dipicu nalika saben obyek diinisialisasi, banjur sing statis bakal micu mung sapisan, nalika kelas dimuat. Ing blok kasebut, minangka aturan, sawetara petungan kompleks uga ditindakake kanggo initialization sabanjure variabel kelas statis. Watesan sing padha ditrapake kanggo blok statis minangka cara statis: ora bisa nggunakake data non-statis, uga referensi kanggo obyek saiki - iki . Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 4 - 6Sabanjure, kita bisa ndeleng urutan initialization saka kelas (bebarengan karo leluhure) kanggo pangerten luwih saka wayahe nalika pamblokiran initialization micu.

36. Kanggo oleh warisan kelas umum Anak ngluwihi Parent, nulis urutan initialization saka obyek

Nalika kelas Anak dimuat, urutan wiwitan bakal kaya ing ngisor iki:
  1. Bidang statis saka kelas Induk .
  2. Blok inisialisasi statis kanggo kelas Induk .
  3. Bidang statis saka kelas Сhild .
  4. Blok inisialisasi statis kanggo kelas Anak .
  5. Bidang non-statis saka kelas Induk .
  6. Ora blok initialization statis kanggo kelas Induk .
  7. Konstruktor kanggo kelas Induk .
  8. Bidang non-statis saka kelas Anak .
  9. Ora blok inisialisasi statis kanggo kelas Anak .
  10. Konstruktor kelas Anak .
Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 4 - 7Mangkene artikel cekak sing nerangake urutan wiwitan ing praktik.

37. Apa hubungane antarane kelas (obyek)?

Ana rong jinis hubungan antarane kelas ing basa Jawa:
  • IS-A sesambetan
Prinsip IS-A ing OOP adhedhasar warisan kelas utawa implementasi antarmuka. Contone, yen kelas Singa warisan saka Cat , kita ngomong yen Singa iku Kucing :
Lion IS-A Cat
(nanging ora saben Kucing iku Singa ) Kahanan iku persis padha karo antarmuka. Yen kelas Lion ngetrapake antarmuka WildAnimal , mula uga ana hubungane:
Lion IS-A WildAnimal
  • Hubungan HAS-A
Jinis hubungan iki adhedhasar panggunaan kelas dening kelas liyane, uga disebut "asosiasi". Asosiasi minangka salah sawijining kelas referensi kelas liyane (utawa malah saben liyane). Contone, kelas Mobil bisa ngrujuk menyang kelas Penumpang , lan iki bakal dadi hubungane:
Car HAS-A Passenger
Lan kosok balene: yen Penumpang duwe referensi kanggo Mobil , banjur iki bakal dadi hubungan:
Passenger HAS-A Car

38. Apa hubungan asosiatif antarane obyek sing sampeyan ngerti?

Agregasi lan komposisi ora luwih saka kasus asosiasi khusus. Agregasi minangka sesambungan ing ngendi siji obyek dadi bagean liyane. Contone, penumpang bisa uga ana ing mobil. Kajaba iku, bisa uga ana sawetara penumpang utawa ora kabeh (yen kita ngomong babagan Tesla, mula driver ora dibutuhake). Tuladhane:
public class Car {
   private List passengers = new ArrayList<>();

 void setPassenger(Passenger passenger) {
     passengers.add(passenger);
 }

   void move() {
       for (Passenger passenger : passengers) {
           System.out.println("Перевозка пассажира - " + passenger.toString());
       }
       passengers.clear();
   }
}
Sing, kita ora Care babagan jumlah penumpang (utawa apa ana ing kabeh): fungsi saka kelas Car ora gumantung iki. Agregasi uga nuduhake yen obyek digunakake dening obyek liyane, sing pisanan bisa digunakake ing obyek liyane. Contone, siswa sing padha bisa dadi anggota saka klub nyulam lan grup musik rocker, lan ing wektu sing padha pindhah menyang klompok siswa Inggris. Nalika sampeyan ngerti, agregasi minangka hubungan asosiatif sing luwih longgar antarane kelas. Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 4 - 8Komposisi minangka hubungan sing luwih kaku nalika obyek ora mung minangka bagean saka obyek liyane, nanging karya obyek liyane gumantung banget marang sing pisanan. Contone, mesin mobil. Senajan mesin bisa ana tanpa mobil, iku ora ana guna ing njaba. Ya, mobil ora bisa mlaku tanpa mesin:
public class Car {
   private Engine engine;

   public Car(Engine engine) {
       this.engine = engine;
   }

   void startMoving() {
       engine.start();
           ...
   }
Komposisi uga nuduhake yen obyek digunakake dening obyek liyane, sing pisanan ora bisa dadi kagungane wong liya. Yen kita bali menyang conto, mesin mung bisa dadi siji mobil, nanging ora kanggo loro utawa luwih ing wektu sing padha. Kita mbokmenawa bakal mandheg ing kene dina iki.Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 4 - 9
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION