JavaRush /Blog Jawa /Random-JV /Ngopi #123. Konstruktor Jawa - Pitakonan lan Jawaban Wawa...

Ngopi #123. Konstruktor Jawa - Pitakonan lan Jawaban Wawancara Teknis

Diterbitake ing grup
Sumber: Hackenoon

Apa Konstruktor?

Konstruktor minangka cara khusus sing ditetepake ing kelas kanthi jeneng sing padha karo jeneng kelas. Konstruktor Jawa kaya cara sing ora duwe jinis bali. Ngopi #123.  Konstruktor Jawa - Pitakon lan Jawaban Wawancara Teknis - 1Konstruktor nduweni peran sing paling penting ing wiwitan obyek lan ing artikel iki, kita bakal nampilake conto pitakonan wawancara sing nyakup konstruktor ing Jawa. Sampeyan uga bakal sinau babagan pentinge konstruktor ing Jawa, ndeleng conto kode lan rincian penting liyane sing bakal mbantu sampeyan njawab pitakonan babagan konstruktor Jawa ing wawancara.

Napa konstruktor dibutuhake? Nerangake kanthi rinci

Ayo kita duwe kelas sing jenenge Siswa . Lan kita duwe jeneng variabel conto lan roll_number .
class Student{
String name;
int rollNo;
}
Saiki, yen kita nggawe 1000 obyek, banjur JVM bakal miwiti nilai kasebut kanthi jinis standar Name = null lan rollNo = 0 . Ngenali obyek kasebut ora bisa ditindakake, lan menehi nilai kanggo saben obyek bakal nambah jumlah kode, sing dianggep minangka praktik pemrograman sing ala. Mulane, kanggo nyegah iki, konstruktor digunakake. Tegese, tujuan konstruktor ing Jawa yaiku kanggo nginisialisasi nilai variabel instance kelas.

Apa jinis konstruktor ing Jawa?

Ana telung jinis konstruktor ing Jawa:
  • Konstruktor Default
  • Konstruktor Tanpa Argumen
  • Konstruktor Parameter

Apa Default Constructor ing Jawa?

A Constructor Default punika konstruktor digawe dening JVM ing runtime yen ora konstruktor ditetepake ing kelas. Tugas utama konstruktor standar yaiku miwiti nilai-nilai conto miturut jinis standar. Conto konstruktor standar ing Jawa:
class DefaultConstructor{
int id;
String name;
}
Saiki kanggo kelas iki, yen kita nggawe obyek, banjur ing JVM bakal ana konstruktor standar sing diwenehi nilai standar.
DefaultConstructor df= new DefaultConstructor();
Saiki yen kita nyithak nilai kita bakal entuk:
Print = df.id = 0.df.name = null.

Apa Konstruktor Tanpa Argumen?

Konstruktor no-argument minangka konstruktor sing bisa ditetepake kanthi jelas kanggo miwiti nilai conto. Tuladhane:
class NoArgConstuctor{ int a; int b;

//No Argument Constructor
NoArgConstuctor(){
a = 10;
b = 20;
}

}

Apa Konstruktor Parameterized?

Konstruktor parameter yaiku konstruktor sing nampa parameter kanggo miwiti instance. Tuladhane:
class ParameterizedConstuctor{
String name;
int age;
//Parameterized Constructor
ParameterizedConstuctor(String name, int age){
this.name = name;
this.age = age;
}
}

Apa aturan kanggo nemtokake konstruktor?

Kanggo nemtokake konstruktor, sampeyan kudu ngetutake sawetara aturan:
  • Jeneng konstruktor kudu cocog karo jeneng kelas.

  • Mesthine ora ana jinis bali konstruktor ing Jawa.

  • Mung modifier sing ditrapake kanggo konstruktor yaiku:

    • umum
    • gawan
    • dilindhungi
    • pribadi
  • Konstruktor bisa njupuk sawetara paramèter.

  • Modifiers final, sinkronisasi, statis lan abstrak ora diijini ing konstruktor.

  • Konstruktor ora ndhukung statement bali ing awak.

  • Bisa uga ana pangecualian karo statement uncalan ing konstruktor .

  • Ditampa nggunakake klausa uncalan karo konstruktor.

  • Konstruktor ngirim ora ngasilake rekursi.

Nalika kita bisa nggunakake konstruktor pribadi?

Yen kita ora pengin nggawe obyek saka kelas tartamtu saka njaba, kita bisa nggunakake konstruktor tertutup utawa pribadi. Kanthi nyatakake konstruktor pribadi, kita bisa nggawe obyek mung ing kelas. Kelas Singleton minangka conto sing apik babagan panggunaan konstruktor pribadi.

Apa sing bakal dadi modifikasi akses konstruktor standar yen kita ora nemtokake kanthi jelas?

Modifier akses standar saka konstruktor bakal tansah padha karo modifier kelas. Yen kelas umum, konstruktor uga bakal umum. Yen kelas iku pribadi, banjur konstruktor uga bakal pribadi. Padha bakal kelakon karo modifiers akses liyane.

Tulis output saka snippet kode ing ngisor iki lan nerangake

class InterviewBit{
InterviewBit(){
System.out.println(" Welcome to InterviewBit ");
}
}
class ScalerAcademy extends InterviewBit{
ScalerAcademy(){
System.out.println(" Welcome to Scaler Academy by InterviewBit");
}
}
class Main{
public static void main(String[] args) {
ScalerAcademy sc = new ScalerAcademy();
}
}
Kode ing ndhuwur bakal dicithak:
Sugeng rawuh ing InterviewBit. Sugeng rawuh ing Scaler Academy dening InterviewBit.
Kita bakal entuk output iki amarga yen kita ora kalebu super () utawa iki () tembung kunci ing konstruktor ing baris pisanan, JVM bakal kanthi otomatis sijine ing runtime. JVM nindakake iki amarga warisan saka kelas liyane lan fungsine uga bakal dileksanakake ing kelas asale. Mangkono, nalika nemtokake nilai standar kanggo conto kelas dhasar, JVM nambahake tembung kunci super() kanthi standar .

Deleng kode kasebut lan tuduhake manawa bener utawa ora bener. Nerangake alesane

class InterviewBit{
InterviewBit(){
System.out.println(" Welcome to InterviewBit ");
}
}
class ScalerAcademy extends InterviewBit{
ScalerAcademy(){
this();
System.out.println(" Welcome to Scaler Academy by InterviewBit");
}
}
class Main{
public static void main(String[] args) {
ScalerAcademy sc = new ScalerAcademy();
}
}
Kode ing ndhuwur ora sah amarga konstruktor sing padha ing konstruktor Scaler Academy . Iki nggawe recursion ing konstruktor, sing ora diijini. Patut, kita bakal nampa kesalahan compile-wektu gadhah telpon kanggo konstruktor rekursif.

Apa kita bisa nggunakake loro konstruktor ing siji kelas ing Jawa?

Ya, kita bisa nggunakake sawetara konstruktor ing siji kelas, miturut rong kondisi:
  • Parameter konstruktor kudu beda.
  • Mesthine ora ana rekursi ing konstruktor.
Tuladha. Coba loro konstruktor saka kelas InterviewBit sing padha :
InterviewBit(){
    this("Scaler"); // Calling parameterized constructor
    System.out.println(" No Argument Constructor");
}
InterviewBit(String name){
    this(); // Calling no-arg constructor
    System.out.println(" Constructor with Parameters.");
}
Kode iki ora valid amarga bakal nggawe rekursi. Konstruktor tanpa argumen bakal nelpon konstruktor kanthi paramèter, lan konstruktor kanthi paramèter bakal nelpon konstruktor tanpa argumen.

Apa kita bisa ngatasi konstruktor ing Jawa?

Ora, konsep overloading konstruktor ora ditrapake ing Jawa.

Apa konstruktor bisa dadi final ing Jawa?

Ora ana konstruktor sing bisa dadi final. Iki amarga tembung kunci pungkasan digunakake kanggo mungkasi overriding metode ing kelas asale. Nanging ing konstruktor, konsep overriding ora ditrapake, mula ora perlu nulis tembung kunci pungkasan . Yen kita nulis tembung kunci pungkasan ing konstruktor, kita bakal entuk kesalahan wektu kompilasi sing diarani jinis bali sing dibutuhake amarga kompiler nganggep minangka metode.

Apa konstruktor bisa statis ing Jawa?

Ora, konstruktor Jawa ora bisa statis. Iki amarga tembung kunci statis digunakake nalika kita pengin anggota dadi kagungane kelas tinimbang obyek. Nanging konstruktor dimaksudake kanggo miwiti obyek, mula kompiler bakal dianggep minangka metode. Kita bakal entuk kesalahan jinis bali sing dibutuhake .

Njlèntrèhaké prabédan antarane super (), super lan iki (), iki

super () lan iki () telpon konstruktor. Iki mung digunakake kanggo nelpon konstruktor kelas induk utawa kelas saiki. Elinga yen "super" lan "iki" minangka tembung kunci sing digunakake kanggo nemtokake anggota saka conto kelas dhewe utawa kelas dhasar. Coba kode ing ngisor iki:
class InterviewBit{
    String message = " Welcome to InterviewBit";
}
public class Scaler extends InterviewBit
{
    String message = " Welcome to Scaler Academy";
    public void printMethod(){
        //this will print the message variable of the current class.
        System.out.println(this.message);

        //this will print the message variable of Base class.
        System.out.println(super.message);
    }
	public static void main(String[] args) {
		Scaler sa = new Scaler();
		sa.printMethod();
	}
}
Ing potongan kode iki, this.message bakal nyithak pesen " Welcome to Scaler Academy " lan super.message bakal nyithak " Welcome to InterviewBit ". Iki minangka tembung kunci loro iki digunakake kanggo ngrujuk marang conto anggota saka kelas dhasar lan asale.

Apa destructors? Apa ana destructor ing Jawa?

Destructors digunakake kanggo mbebasake memori sing diduweni dening program. Contone, yen memori dibutuhake dening program sajrone eksekusi, destructor mbebasake memori kasebut supaya program liyane bisa nggunakake. Ora ana konsep destruktor ing Jawa amarga karya mbebasake memori ing Jawa ditangani dening tukang sampah.

Apa sing diarani chaining konstruktor ing basa Jawa?

Nalika siji konstruktor diarani saka konstruktor liyane, iki bisa diarani chaining konstruktor. Panggilan konstruktor ora kudu digawe ing kelas sing padha. Iki bisa ditindakake kanggo kelas induk uga. Kanggo conto, nimbang gambar ing ngisor iki. Ngopi #123.  Konstruktor Jawa - Pitakon lan Jawaban Wawancara Teknis - 2Sabanjure, kita bisa ndeleng kode kanggo miwiti obyek kanthi nilai-nilai saka variabel conto iki:
class EmployeeAddess{
    int pinCode;
    String address;
    String mobNo;
    EmployeeAddress(int pinCode, String address, String mobNo){
        this.pinCode = pinCodel
        this.address = address;
        this.mobNo = mobNo;
    }
}
class Employees extends EmployeeAddress{
    int ID;
    String name;
    String designation;
    String department;
    Employee(int ID, String name, String designation,String department,
                    int pinCode, String address, String mobNo){

        //Calling Constructor for Base class to initialize the object.
        //This can be a constructor chaining.
        super(pinCode, address, mobNo);
        this.ID = ID;
        this.name = name;
        this.designation = designation;
        this.department = department;
    }
}
public class Main{
    Employee emp = new Employee(101, "XYX", "SDE", "Cloud", 123456, "no 150, xys, xys, INDIA", "999999999");
}
Ing kode ing ndhuwur, kita nggawe obyek kelas Karyawan kanthi rincian karyawan lan alamate. Kelas alamat Employee diwarisake dening kelas Employee . Saiki, kanggo instantiate nilai obyek kanggo alamat, kita ora nemtokake nilai eksplisit menyang alamat karyawan. Nanging, kita nggunakake konstruktor kelas Alamat Karyawan kanggo nindakake iki . Lan kanthi bantuan super(argumen) kita mbentuk rantai konstruktor kanggo miwiti nilai kasebut. Sing apa chain konstruktor.

Temtokake output program saka kode lan jelasake jawaban sampeyan.

class InterviewBit{
void InterviewBit(){
System.out.println(" Java Constructor interview questions by InterviewBit");
}
int InterviewBit(int val){
System.out.println(" Java Constructor. And Value = "+val);
}
}
public class Main{
InterviewBit ib1 = new InterviewBit();
InterviewBit ib2 = new InterviewBit();
}
Kode ing ndhuwur ora bakal nyithak apa-apa amarga InterviewBit () dudu konstruktor ing kene. Wiwit tembung kunci Void lan int digunakake , dadi cara. Mulane kita ora nelpon cara. Kita ora bakal entuk output apa wae amarga kanggo nglakokake metode kasebut, kita kudu nyebutake kanthi jelas ing obyek kasebut.

Tulis program kanggo nyalin nilai obyek menyang obyek anyar nggunakake konstruktor

class Rectangle{
    int length;
    int breadth;
    Rectangle(int length, int breadth){
        this.length = length;
        this.breadth = breadth;
    }

    //Overloaded Constructor for copying the value of old Object to new object
    Rectangle(Rectangle obj){
        this.length = obj.length;
        this.breadth = obj.breadth;
    }
}
public class Main{
    Rectangle obj1 = new Rectangle(10, 5);

    //New Object of rectangle class will be created with the value from obj1.
    Rectangle obj2 = new Rectangle(obj1);
}
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION