Sebelumnya kita telah membahas tentang Class, Object, dan Method, kali ini kita akan mempelajari apa itu Referensi this dan Overloading Methods.

Referensi this
         Referensi this digunakan untuk mengakses instance variable yang dibiaskan oleh parameter. Saya langsung contohkan saja, perhatikan method berikut :

class Student{
    private String name;
    :
    public void setName(String name){
        name = name;
}


pada method ini variable name akan mengisi dirinya sendiri, karena itu kita harus menggunakan this untuk menyatakan variable yang dimaksud adalah variable yang berada di dalam class Student.
jadi kita tambahkan kata this. sebagai referensi dari class tersebut
class Student{
    private String name;
    :
    public void setName(String name){
        this.name = name;
}
this disini artinya class itu sendiri

maka pada codingan diatas this yang dimaksud adalah class Student. lalu apakah this ini bisa digunakan di luar class? jawabannya adalah tidak, this ini tidak bisa digunakan diluar class


Overloading methods
         overloading  method digunakan untuk membuat method dengan nama yang sama namun mempunyai fungsi yang berbeda menurut parameter yang digunakan. overloading method mengizinkan sebuah method dengan nama yang sama namun memiliki parameter yang berbeda sehingga mempunya implementasi dan return value yang berbeda juga.
         sebagai contoh, pada class Student kita menginginkan sebuah method yang akan menampilkan informasi tentang siswa. namun kita juga menginginkan operasi penampilan data tersebut menghasilkan output yang berbeda menurut parameter yang digunakan. jika pada saat kita memberikan sebuah parameter berupa string, hasil yang ditampilkan adalah nama, alamat, dan umur dari siswa, sedangkan pada saat kita memberikan 3 nilai dengan tipe double, kita menginginkan method tersebut untuk menampilkan nama dan nilai dari siswa. untuk itu menggunakan overloading method dalam mendeklarasikannya. 
    
public void print( String temp ){  
    System.out.println("Name:" + name);
    System.out.println("Address:" + address);  
    System.out.println("Age:" + age); 
} 
public void print(double eGrade, double mGrade, double sGrade){  
    System.out.println("Math Grade:" + mGrade);  
    System.out.println("English Grade:" + eGrade);  
    System.out.println("Science Grade:" + sGrade); 
}
kedua method ini memiliki nama yang sama yaitu print namun memiliki parameter yang berbeda.