java
Dalam tutorial ini, kita akan belajar tentang konstruktor Java, tipenya, dan cara menggunakannya dengan bantuan contoh.
Konstruktor di Java mirip dengan metode yang dipanggil saat objek kelas dibuat.
Tidak seperti metode Java, konstruktor memiliki nama yang sama dengan nama kelas dan tidak memiliki tipe pengembalian. Misalnya,
class Test { Test() { // constructor body } }
Di sini, Test()
adalah konstruktor. Ini memiliki nama yang sama dengan kelas dan tidak memiliki tipe pengembalian.
Bacaan yang Disarankan: Mengapa konstruktor tidak mengembalikan nilai
class Main {
private String name;
// constructor
Main() {
System.out.println("Constructor Called:");
name = "Programiz";
}
public static void main(String[] args) {
// constructor is invoked while
// creating an object of the Main class
Main obj = new Main();
System.out.println("The name is " + obj.name);
}
}
Keluaran :
Constructor Called: The name is Programiz
Pada contoh di atas, kami telah membuat konstruktor bernama Main()
. Di dalam konstruktor, kita menginisialisasi nilai name variabel.
Perhatikan pernyataan membuat objek Main kelas.
Main obj = new Main();
Di sini, ketika objek dibuat, Main()
konstruktor disebut. Dan, nilai name variabel diinisialisasi.
Oleh karena itu, program mencetak nilai name variabel sebagai Programiz
.
Di Java, konstruktor dapat dibagi menjadi 3 jenis:
Mirip dengan metode, konstruktor Java mungkin atau mungkin tidak memiliki parameter (argumen).
Jika konstruktor tidak menerima parameter apa pun, itu dikenal sebagai konstruktor tanpa argumen. Misalnya,
private Constructor() {
// body of the constructor
}
class Main {
int i;
// constructor with no parameter
private Main() {
i = 5;
System.out.println("Constructor is called");
}
public static void main(String[] args) {
// calling the constructor without any parameter
Main obj = new Main();
System.out.println("Value of i: " + obj.i);
}
}
Keluaran :
Constructor is called Value of i: 5
Pada contoh di atas, kita telah membuat sebuah konstruktor Main()
. Di sini, konstruktor tidak menerima parameter apa pun. Oleh karena itu, ini dikenal sebagai konstruktor no-arg.
Perhatikan bahwa kami telah mendeklarasikan konstruktor sebagai pribadi.
Setelah konstruktor dideklarasikan private
, tidak dapat diakses dari luar kelas. Jadi, membuat objek dari luar kelas dilarang menggunakan konstruktor pribadi.
Di sini, kita membuat objek di dalam kelas yang sama. Oleh karena itu, program dapat mengakses konstruktor. Untuk mempelajari lebih lanjut, kunjungi Java Implement Private Constructor.
Namun, jika kita ingin membuat objek di luar kelas, maka kita perlu mendeklarasikan konstruktor sebagai public
.
class Company {
String name;
// public constructor
public Company() {
name = "Programiz";
}
}
class Main {
public static void main(String[] args) {
// object is created in another class
Company obj = new Company();
System.out.println("Company name = " + obj.name);
}
}
Keluaran :
Company name = Programiz
Bacaan yang Disarankan: Pengubah Akses Java
Konstruktor Java juga dapat menerima satu atau lebih parameter. Konstruktor tersebut dikenal sebagai konstruktor berparameter (konstruktor dengan parameter).
class Main {
String languages;
// constructor accepting single value
Main(String lang) {
languages = lang;
System.out.println(languages + " Programming Language");
}
public static void main(String[] args) {
// call constructor by passing a single value
Main obj1 = new Main("Java");
Main obj2 = new Main("Python");
Main obj3 = new Main("C");
}
}
Keluaran :
Java Programming Language Python Programming Language C Programming Language
Pada contoh di atas, kami telah membuat konstruktor bernama Main()
. Di sini, konstruktor mengambil satu parameter. Perhatikan ekspresinya,
Main obj1 = new Main("Java");
Di sini, kami meneruskan nilai tunggal ke konstruktor. Berdasarkan argumen yang diteruskan, variabel bahasa diinisialisasi di dalam konstruktor.
Jika kita tidak membuat konstruktor apa pun, kompiler Java secara otomatis membuat konstruktor no-arg selama eksekusi program. Konstruktor ini disebut konstruktor default.
class Main {
int a;
boolean b;
public static void main(String[] args) {
// A default constructor is called
Main obj = new Main();
System.out.println("Default Value:");
System.out.println("a = " + obj.a);
System.out.println("b = " + obj.b);
}
}
Keluaran :
a = 0 b = false
Di sini, kami belum membuat konstruktor. Oleh karena itu, kompiler Java secara otomatis membuat konstruktor default.
Konstruktor default menginisialisasi variabel instan apa pun yang tidak diinisialisasi dengan nilai default.
Jenis | Nilai Default |
---|---|
boolean | salah |
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
char | \u0000 |
float | 0.0f |
double | 0,0d |
object | Referensi nol |
Dalam program di atas, variabel a dan b diinisialisasi dengan nilai default 0 dan false
masing-masing.
Program di atas setara dengan:
class Main {
int a;
boolean b;
// a private constructor
private Main() {
a = 0;
b = false;
}
public static void main(String[] args) {
// call the constructor
Main obj = new Main();
System.out.println("Default Value:");
System.out.println("a = " + obj.a);
System.out.println("b = " + obj.b);
}
}
Keluaran program sama dengan Contoh 5.
int
variabel akan diinisialisasi ke 0
abstract
atau static
atau final
.Mirip dengan metode Java overloading, kita juga dapat membuat dua atau lebih konstruktor dengan parameter yang berbeda. Ini disebut overloading konstruktor.
class Main {
String language;
// constructor with no parameter
Main() {
this.language = "Java";
}
// constructor with a single parameter
Main(String language) {
this.language = language;
}
public void getName() {
System.out.println("Programming Langauage: " + this.language);
}
public static void main(String[] args) {
// call constructor with no parameter
Main obj1 = new Main();
// call constructor with a single parameter
Main obj2 = new Main("Python");
obj1.getName();
obj2.getName();
}
}
Keluaran :
Programming Language: Java Programming Language: Python
Dalam contoh di atas, kita memiliki dua konstruktor:Main()
dan Main(String language)
. Di sini, kedua konstruktor menginisialisasi nilai bahasa variabel dengan nilai yang berbeda.
Berdasarkan parameter yang diteruskan selama pembuatan objek, konstruktor yang berbeda dipanggil dan nilai yang berbeda diberikan.
Dimungkinkan juga untuk memanggil satu konstruktor dari konstruktor lain. Untuk mempelajari lebih lanjut, kunjungi Java Panggil Satu Konstruktor dari Yang Lain.
Catatan :Kami telah menggunakan this
kata kunci untuk menentukan variabel kelas. Untuk mengetahui lebih lanjut tentang this
kata kunci, kunjungi Java kata kunci ini.
java
Polimorfisme Java Dalam tutorial ini, kita akan belajar tentang polimorfisme Java dan implementasinya dengan bantuan contoh. Polimorfisme adalah konsep penting dari pemrograman berorientasi objek. Ini berarti lebih dari satu bentuk. Artinya, entitas yang sama (metode atau operator atau objek) dapa
Pengecualian Java Dalam tutorial ini, kita akan belajar tentang exception di Java. Kami akan membahas kesalahan, pengecualian, dan berbagai jenis pengecualian di Java. Pengecualian adalah kejadian tak terduga yang terjadi selama eksekusi program. Ini mempengaruhi aliran instruksi program yang dapat
Antarmuka Koleksi Java Dalam tutorial ini, kita akan belajar tentang antarmuka Java Collection dan subinterface-nya. Collection antarmuka adalah antarmuka akar kerangka koleksi Java. Tidak ada implementasi langsung dari antarmuka ini. Namun, ini diimplementasikan melalui subinterfacenya seperti L
Daftar Java Dalam tutorial ini, kita akan belajar tentang antarmuka Daftar di Java dan metodenya. Dalam Java, List interface adalah kumpulan terurut yang memungkinkan kita untuk menyimpan dan mengakses elemen secara berurutan. Ini memperluas Collection antarmuka. Kelas yang Menerapkan Daftar Seja