Skip to main content

Cara menggunakan 'this' dan constructor pada Java

contohapps

'this' merupakan keywords dalam bahasa pemrograman java yang berguna untuk mengakses variable yang dibiaskan oleh parameter contoh penggunaan yang salah :

  private String umur;
    
    public void setUmur(String umur){
        umur=umur;
    }
  
Nama parameter pada deklarasi ini adalah umur, yang memiliki penamaan yang sama dengan instance variable umur. Parameter umur adalah deklarasi terdekat dari method, sehingga nilai dari parameter tersebut akan digunakan. Maka pada pernyataan umur=umur; kita telah menentukan nilai dari parameter umur kepada parameter itu sendiri. Hal ini sangat tidak kita kehendaki pada kode program kita. Untuk menghindari kesalahan semacam ini, kita gunakan metode referensi this. Untuk menggunakan tipe referensi ini, contoh yang benar dapat kita tuliskan:
  private String umur;
    
    public void setUmur(String umur){
        this.umur=umur;
    }
  

Penggunaan this pada Class Variabel

Variabel kelas (class variable) adalah variabel yang dideklarasikan di dalam sebuah kelas dan bertindak sebagai data field dari kelas tersebut, sedangkan variabel lokal (local variable) adalah variabel yang dideklarasikan di dalam sebuah method. Cakupan variabel lokal dimulai dari posisi variabel tersebut dideklarasikan sampai dengan akhir dari blok metoda yang ditandai dengan closing brace. Cakupan dari variabel kelas meliputi keseluruhan kelas. Pemberian nama yang sama antara variabel kelas dan variabel lokal di sebuah method mungkin saja bisa terjadi. Misalnya, metoda set yang digunakan untuk merubah nilai variabel kelas, mungkin saja mendeklarasikan parameter dengan nama sama sebagaimana nama variabel kelas yang nilainya akan dirubah. 

Di dalam method set, untuk dapat mengacu ke variabel kelas yang nilainya akan dirubah, Anda perlu menggunakan kata kunci this. Apabila variabel kelas tersebut dideklarasikan menggunakan modifier static, maka variabel kelas dapat diakses menggunakan nama-kelas.variabel-static. Di dalam contoh program kelas Warna, terdapat dua variabel kelas yaitu variabel merah dan biru. Kelas Warna juga mendeklarasikan dua buah method yaitu method setMerah yang memiliki parameter merah dan setBiru yang memiliki parameter biru. Parameter dari kedua method tersebut memiliki kesamaan nama dengan dua variabel kelas (data field) dari kelas Warna. Berikut ini adalah kode program kelas Warna yang mungkin dapat memberikan pemahaman lebih jelas tentang penggunaan kata kunci (keyword) this untuk mengacu ke variabel kelas.

public class Warna {
    // Deklarasi variabel kelas (data field)
    int merah = 7;
    static double biru = 2;

    // Deklarasi method
    void setMerah(int merah) {
        this.merah = merah;
    }
    // Deklarasi method static
static void setBiru(double biru) { Warna.biru = biru; } }
Keterangan :
jika kita menggunakan class variabel maka penggunaan nya harus menggunakan kata kunci this seperti contoh diatas pada method setMerah untuk mengisi class variabel merah menggunakan this.merah, sedangkan jika menggunakan static variabel kita tidak dapat menggunakan kata kunci this.biru penggunaan tersebut akan muncul pesan error karena variabel biru merupakan static variabel, jadi penggunaan yang benar adalah nama_class.static_variabel sehingga menjadi Warna.biru

Pengertian Constructor

Constructor  adalah sebuah method khusus yang digunakan untuk menginisialiasi dari sebuah object didalam constructor seluruh inisialisasi object ditempatkan. Secara default constructor telah dibuat otomatis ketika kita membuat class java, tanpa harus menuliskannya. Constructor sangatlah penting pada pembentukan sebuah object. Berikut ini adalah property dari Constructor:
  1. Constructor memiliki nama yang sama dengan class
  2. Sebuah Constructor mirip dengan method pada umumnya
  3. Constructor tidak memiliki return value
  4. Constructor tidak dapat dipanggil secara langsung, namun harus dipanggil dengan menggunakan operator new pada pembentukan sebuah class.
Untuk mendeklarasikan constructor, kita tulis sebagai berikut : 
<modifier><className>(<parameter>*){
<statement>*
}

Default Constructor 

Setiap class memiliki default constructor. Sebuah default constructor adalah constructor yang tidak memiliki parameter apapun. Jika sebuah class tidak memiliki constructor apapun, maka sebuah default constructor akan dibentuk secara implicit. Sebagai contoh, pada class DataSiswa, bentuk default constructor akan terlihat seperti dibawah ini :

Public StudentRecord()
{
//area penulisan kode
}

Menggunakan Constructor 

Untuk menggunakan constructor, kita gunakan coding sebagai berikut:

public class DataSiswa {

    private static int jumlahSiswa;
    private String name;
    private String address;
    private double mathGrade;
    private double englishGrade;
    private double scienceGrade;

    public DataSiswa() {
        //letak kode inisialisasi
        jumlahSiswa++;//menambahstudent
    }

    public DataSiswa(String temp) {
        this.name = temp;
        jumlahSiswa++;//menambah siswa
    }

    public DataSiswa(String name, String address) {
        this.name = name;
        this.address = address;
        jumlahSiswa++;//menambah siswa
    }

    public DataSiswa(double mGrade, double eGrade, double sGrade) {
        mathGrade = mGrade;
        englishGrade = eGrade;
        scienceGrade = sGrade;
        jumlahSiswa++;//menambah siswa
    }

    public static int getjumlahSiswa() {
        return jumlahSiswa;
    }

    public static void main(String[] args) {
        //membuat3objek
        DataSiswa annaRecord = new DataSiswa("Anna");
        DataSiswa beahRecord = new DataSiswa("Beah", "Philippines");
        DataSiswa crisRecord = new DataSiswa(80, 90, 100);
        //area penulisan kode selanjutnya
    }
}

Pemanggilan constructor dapat dilakukan secara berangkai, dalam arti Anda dapat memanggil constructor di dalam constructor lain. Pemanggilan dapat dilakukan dengan referensi this()
Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar