Materi
Kelas adalah cetak biru; objek adalah barang yang dibuat darinya dengan kata new. Field menyimpan data tiap objek, konstruktor mengisi field saat objek dibuat, dan method instance bekerja pada field objek itu. Konstruktor ditulis seperti method tanpa tipe balik, dengan nama yang sama persis dengan kelasnya.
class Rekening {
String pemilik;
int saldo;
Rekening(String pemilik, int saldo) {
this.pemilik = pemilik;
this.saldo = saldo;
}
void setor(int jumlah) {
saldo += jumlah;
}
}Di konstruktor itu, parameter pemilik bernama sama dengan field pemilik. this.pemilik menunjuk field, sedangkan pemilik saja menunjuk parameter. Tanpa this, baris pemilik = pemilik hanya mengisi parameter dengan dirinya sendiri, dan fieldnya tetap bernilai bawaan: null untuk objek, 0 untuk int.
Variabel bertipe kelas menyimpan referensi. Rekening b = a; tidak menyalin rekeningnya; a dan b kini menunjuk satu objek yang sama, sehingga setoran lewat b terlihat lewat a. Ini berbeda dari int b = a;, yang menyalin angkanya. Perilaku ini sama dengan objek di Python dan JavaScript.