Home » Java » Methods di Java : Penjelasan – Contoh dan Source Code

Methods di Java : Penjelasan – Contoh dan Source Code

by Bagus Dharma Iswara
by Bagus Dharma Iswara

Metode adalah sekumpulan kode yang hanya berjalan saat dipanggil. Anda dapat mengirimkan data, yang disebut parameter, ke dalam metode. Metode digunakan untuk melakukan tindakan tertentu, dan mereka juga dikenal sebagai fungsi.

Mengapa menggunakan metode? Untuk menggunakan kembali kode: tentukan kode sekali, dan gunakan berkali-kali. Secara umum, metode adalah cara untuk melakukan suatu tugas. Demikian pula, metode di Java adalah kumpulan instruksi yang melakukan tugas tertentu.

Ini memberikan kode yang dapat digunakan kembali. Kami juga dapat dengan mudah mengubah kode menggunakan metode. Di bagian ini, kita akan mempelajari apa itu metode di Java, jenis metode, deklarasi metode, dan cara memanggil metode di Java.

Pengertian Methods pada Java

Metode Java adalah kumpulan pernyataan yang dikelompokkan bersama untuk melakukan operasi. Ketika Anda memanggil metode System.out.println (), misalnya, sistem sebenarnya menjalankan beberapa pernyataan untuk menampilkan pesan di konsol.

Sekarang Anda akan belajar cara membuat metode Anda sendiri dengan atau tanpa nilai kembalian, memanggil metode dengan atau tanpa parameter, dan menerapkan abstraksi metode dalam desain program.

Metode adalah sekumpulan kode atau kumpulan pernyataan atau sekumpulan kode yang dikelompokkan bersama untuk melakukan tugas atau operasi tertentu. Ini digunakan untuk mencapai penggunaan kembali kode. Kami menulis metode sekali dan menggunakannya berkali-kali.

Kami tidak perlu menulis kode lagi dan lagi. Ini juga menyediakan modifikasi dan keterbacaan kode yang mudah, hanya dengan menambahkan atau menghapus sebagian kode. Metode ini dijalankan hanya ketika kita memanggil atau memanggilnya. Metode terpenting di Java adalah metode main ().

Membuat Methods pada Java

Metode harus dideklarasikan di dalam kelas. Ini didefinisikan dengan nama metode, diikuti dengan tanda kurung (). Java menyediakan beberapa metode yang telah ditentukan sebelumnya, seperti System.out.println (), tetapi Anda juga dapat membuat metode Anda sendiri untuk melakukan tindakan tertentu.

Deklarasi metode memberikan informasi tentang atribut metode, seperti visibilitas, tipe kembalian, nama, dan argumen. Ini memiliki enam komponen yang dikenal sebagai header metode.

  1. Method Signature adalah setiap metode memiliki tanda tangan metode. Ini adalah bagian dari deklarasi metode. Ini termasuk nama metode dan daftar parameter.
  2. Access Specifier adalah Penentu atau pengubah akses adalah jenis akses dari metode tersebut. Ini menentukan visibilitas metode. Java menyediakan empat jenis penentu akses yaitu Public (Metode ini dapat diakses oleh semua kelas saat kita menggunakan penentu publik dalam aplikasi kita), Private (Saat kita menggunakan penentu akses pribadi, metode ini hanya dapat diakses di kelas yang ditentukan), Protected (Saat kami menggunakan penentu akses yang dilindungi, metode ini dapat diakses dalam paket atau subkelas yang sama dalam paket yang berbeda), Default (Ketika kita tidak menggunakan penentu akses apa pun dalam deklarasi metode, Java menggunakan penentu akses default secara default. Itu hanya terlihat dari paket yang sama saja).
  3. Return Type yaitu tipe pengembalian adalah tipe data yang dikembalikan metode. Ini mungkin memiliki tipe data primitif, objek, koleksi, void, dan lainnya. Jika metode tidak mengembalikan apa pun, kami menggunakan kata kunci void.
  4. Method Name yaitu ini adalah nama unik yang digunakan untuk menentukan nama metode. Ini harus sesuai dengan fungsionalitas metode. Misalkan, jika kita membuat metode untuk pengurangan dua angka, nama metode haruslah subtraction (). Sebuah metode dipanggil oleh namanya.
  5. Parameter List adalah daftar parameter yang dipisahkan oleh koma dan diapit oleh sepasang tanda kurung. Ini berisi tipe data dan nama variabel. Jika metode tidak memiliki parameter, kosongkan tanda kurung.
  6. Body yaitu ini adalah bagian dari deklarasi metode. Ini berisi semua tindakan yang harus dilakukan. Itu tertutup dalam sepasang kurung kurawal.

Sintaks dalam membuat methods bisa dibuat dengan cara

public static int methodName(int a, int b) {
   // body
}
  • public static adalah modifier.
  • int adalah return type.
  • methodName adalah nama methods.
  • a, b adalah parameter formal.
  • int a, int b adalah list parameter.

Definisi metode terdiri dari header metode dan isi metode. Hal yang sama ditunjukkan pada sintaks berikut

modifier returnType nameOfMethod (Parameter List) {
   // method body
}

Sintaks yang ditunjukkan di atas termasuk

  • modifier yaitu Ini mendefinisikan jenis akses metode dan opsional untuk digunakan.
  • returnType yaitu Metode dapat mengembalikan nilai.
  • nameOfMethod yaitu Ini adalah nama metode. Tanda tangan metode terdiri dari nama metode dan daftar parameter.
  • Parameter List yaitu Daftar parameter, yaitu jenis, urutan, dan jumlah parameter dari suatu metode. Ini opsional, metode mungkin berisi parameter nol.
  • method body yaitu Tubuh metode mendefinisikan apa yang dilakukan metode dengan pernyataan.

Berikut adalah kode sumber dari metode yang ditentukan di atas yang disebut min (). Metode ini mengambil dua parameter num1 dan num2 dan mengembalikan nilai maksimum di antara keduanya

/** the snippet returns the minimum between two numbers */

public static int minFunction(int n1, int n2) {
   int min;
   if (n1 > n2)
      min = n2;
   else
      min = n1;

   return min; 
}

Contoh lainnya yang sederhana adalah dengan membuat kode berikut

public class MyClass {
  static void myMethod() {
    // code to be executed
  }
}

Dapat kita jelaskan dengan

  • myMethod () adalah nama metode.
  • static berarti bahwa metode tersebut milik kelas MyClass dan bukan objek dari kelas MyClass. Anda akan mempelajari lebih lanjut tentang objek dan cara mengakses metode melalui objek pada tutorial yang sudah pernah dibahas sebelumnya.
  • void berarti metode ini tidak memiliki nilai pengembalian. Anda akan mempelajari lebih lanjut tentang nilai kembali nanti di Tutorial struktur data java.

Penamaan Sebuah Method Java

Saat menentukan metode, ingatlah bahwa nama metode harus berupa kata kerja dan dimulai dengan huruf kecil. Jika nama metode memiliki lebih dari dua kata, nama depan harus berupa kata kerja diikuti oleh kata sifat atau kata benda.

Dalam nama metode multi-kata, huruf pertama setiap kata harus menggunakan huruf besar kecuali kata pertama. Sebagai contoh:

Nama metode satu kata: sum (), area ()

Nama metode multi-kata: areaOfCircle (), stringComparision ()

Mungkin juga suatu metode memiliki nama yang sama dengan nama metode lain di kelas yang sama, ini dikenal sebagai metode overloading.

Tipe-Tipe Methods

Ada dua jenis metode di Java yaitu

  1. Predefined Method.
  2. User-defined Method

Predefined Method

Di Java, metode yang telah ditentukan sebelumnya adalah metode yang telah ditentukan dalam perpustakaan kelas Java yang dikenal sebagai metode yang telah ditentukan sebelumnya. Ini juga dikenal sebagai metode pustaka standar atau metode bawaan.

Kami dapat langsung menggunakan metode ini hanya dengan memanggil mereka dalam program kapan saja. Beberapa metode yang telah ditentukan sebelumnya adalah length (), equals (), CompareTo (), sqrt (), dll.

Saat kami memanggil metode yang telah ditentukan sebelumnya dalam program kami, serangkaian kode yang terkait dengan metode terkait berjalan di latar belakang yang sudah disimpan di perpustakaan.

Setiap metode yang telah ditentukan didefinisikan di dalam kelas. Seperti metode print () yang didefinisikan di kelas java.io.PrintStream.

Ini mencetak pernyataan yang kita tulis di dalam metode. Misalnya, print (“Java”), ia mencetak Java di konsol. Mari kita lihat contoh metode yang telah ditentukan sebelumnya. Kita buat sebuah file java dengan nama Demo.java

public class Demo   
{  
public static void main(String[] args)   
{  
// using the max() method of Math class  
System.out.print("The maximum number is: " + Math.max(9,7));  
}  
} // maka akan mengeluarkan output :  The maximum number is: 9

Dalam contoh di atas, kami telah menggunakan tiga metode standar main (), print (), dan max (). Kami telah menggunakan metode ini secara langsung tanpa deklarasi karena sudah ditentukan sebelumnya.

Metode print () adalah metode kelas PrintStream yang mencetak hasilnya di konsol. Metode max () adalah metode kelas Matematika yang mengembalikan dua angka lebih besar.

Kita dapat melihat max sebagai berikut

public static int max(int a, int b){}

kita melihat bahwa metode memiliki penentu akses publik, pengubah non-akses statis, tipe kembalian int, nama metode max (), daftar parameter (int a, int b). Dalam contoh di atas, alih-alih mendefinisikan metode, kami baru saja memanggil metode tersebut. Ini adalah keuntungan dari metode yang telah ditentukan sebelumnya. Itu membuat pemrograman tidak terlalu rumit.

Demikian pula, kita juga bisa melihat tanda tangan metode dari metode print ().

User-Defined Method

Metode yang ditulis oleh pengguna atau programmer dikenal sebagai metode yang ditentukan pengguna. Metode ini dimodifikasi sesuai kebutuhan. Cara Membuat Metode yang Ditentukan Pengguna adalah sebagai berikut. Mari buat metode yang ditentukan pengguna yang memeriksa angka genap atau ganjil. Pertama, kita akan mendefinisikan metodenya.

//user defined method  
public static void findEvenOdd(int num)  
{  
//method body  
if(num%2==0)   
System.out.println(num+" is even");   
else   
System.out.println(num+" is odd");  
}  

Kami telah mendefinisikan metode di atas bernama findevenodd (). Ini memiliki parameter num tipe int. Metode ini tidak mengembalikan nilai apa pun, itulah mengapa kami menggunakan void. Tubuh metode berisi langkah-langkah untuk memeriksa bilangan genap atau ganjil. Jika angkanya genap, ia mencetak angkanya genap, jika tidak mencetak angkanya ganjil.

Cara Memanggil atau Memanggil Metode yang Ditentukan Pengguna adalah dengan cara Setelah kita mendefinisikan metode, itu harus dipanggil. Pemanggilan metode dalam program itu sederhana. Ketika kita memanggil atau memanggil metode yang ditentukan pengguna, kontrol program mentransfer ke metode yang dipanggil bisa diihat dari kode dibawah

import java.util.Scanner;  
public class EvenOdd  
{  
public static void main (String args[])  
{  
//creating Scanner class object     
Scanner scan=new Scanner(System.in);  
System.out.print("Enter the number: ");  
//reading value from the user  
int num=scan.nextInt();  
//method calling  
findEvenOdd(num);  
}  

Dalam potongan kode di atas, segera setelah kompilator mencapai baris findEvenOdd (num), kontrol ditransfer ke metode dan memberikan keluaran yang sesuai.

Mari gabungkan kedua potongan kode dalam satu program dan jalankan kode tersebut.

Contoh lainnya adalah dengan membuat kode berikut dengan nama EvenOdd.java

import java.util.Scanner;  
public class EvenOdd  
{  
public static void main (String args[])  
{  
//creating Scanner class object     
Scanner scan=new Scanner(System.in);  
System.out.print("Enter the number: ");  
//reading value from user  
int num=scan.nextInt();  
//method calling  
findEvenOdd(num);  
}  
//user defined method  
public static void findEvenOdd(int num)  
{  
//method body  
if(num%2==0)   
System.out.println(num+" is even");   
else   
System.out.println(num+" is odd");  
}  
} 

Maka akan menghasilkan output berikut

Enter the number: 12
12 is even

Enter the number: 99
99 is odd

Memanggil Method pada Java

Untuk memanggil metode di Java, tulis nama metode diikuti dengan dua tanda kurung () dan titik koma;. Untuk menggunakan metode, itu harus dipanggil. Ada dua cara di mana suatu metode dipanggil, yaitu metode mengembalikan nilai atau tidak mengembalikan apa pun (tidak ada nilai pengembalian).

Proses pemanggilan metode sederhana. Ketika program memanggil metode, kontrol program akan ditransfer ke metode yang dipanggil. Metode yang dipanggil ini kemudian mengembalikan kontrol ke pemanggil dalam dua kondisi, yaitu ketika

  1. Pernyataan return dieksekusi.
  2. Mencapai metode yang mengakhiri kurung kurawal tutup.

Metode mengembalikan kekosongan dianggap sebagai panggilan ke pernyataan. Mari pertimbangkan sebuah contoh sederhana

System.out.println("Tutorial Methods Pada Java");

Metode nilai yang kembali (dengan return nilai) dapat dipahami dengan contoh berikut

int result = sum(6, 9);

Berikut adalah contoh untuk mendemonstrasikan bagaimana mendefinisikan sebuah metode dan bagaimana memanggilnya

public class ExampleMinNumber {
   
   public static void main(String[] args) {
      int a = 11;
      int b = 6;
      int c = minFunction(a, b);
      System.out.println("Minimum Value = " + c);
   }

   /** returns the minimum of two numbers */
   public static int minFunction(int n1, int n2) {
      int min;
      if (n1 > n2)
         min = n2;
      else
         min = n1;

      return min; 
   }
} // output yang dihasilkan adalah : Minimum value = 6

Berikut merupakan contoh sederhana lainnya yang dapat dilihat pada kode berikut

Dalam contoh berikut, myMethod () digunakan untuk mencetak teks (action), saat dipanggil

public class MyClass {
  static void myMethod() {
    System.out.println("I just got executed!");
  }

  public static void main(String[] args) {
    myMethod();
  }
}

// Outputs "I just got executed!"

Sebuah metode juga bisa dipanggil beberapa kali seperti contoh dibawah

public class MyClass {
  static void myMethod() {
    System.out.println("I just got executed!");
  }

  public static void main(String[] args) {
    myMethod();
    myMethod();
    myMethod();
  }
}

// I just got executed!
// I just got executed!
// I just got executed!

Mari kita lihat program lain yang mengembalikan nilai ke metode pemanggilan.

Dalam program berikut, kami telah mendefinisikan metode bernama add () yang menjumlahkan dua angka. Ini memiliki dua parameter n1 dan n2 tipe integer. Nilai n1 dan n2 masing-masing sesuai dengan nilai a dan b. Oleh karena itu, metode tersebut menambahkan nilai a dan b dan menyimpannya dalam variabel s dan mengembalikan jumlahnya.

public class Addition   
{  
public static void main(String[] args)   
{  
int a = 19;  
int b = 5;  
//method calling  
int c = add(a, b);   //a and b are actual parameters  
System.out.println("The sum of a and b is= " + c);  
}  
//user defined method  
public static int add(int n1, int n2)   //n1 and n2 are formal parameters  
{  
int s;  
s=n1+n2;  
return s; //returning the sum  
}  
}  // akan mnghasilkan output : The sum of a and b is= 24

Metode Static

Metode yang memiliki kata kunci statis disebut metode statis. Dengan kata lain, metode yang dimiliki kelas daripada instance kelas dikenal sebagai metode statis. Kita juga dapat membuat metode statis dengan menggunakan kata kunci statis sebelum nama metode.

Keuntungan utama dari metode statis adalah kita dapat memanggilnya tanpa membuat objek. Itu dapat mengakses anggota data statis dan juga mengubah nilainya. Ini digunakan untuk membuat metode instance. Itu dipanggil dengan menggunakan nama kelas. Contoh terbaik dari metode statis adalah metode main ().

Contoh metode static yaitu

public class Display  
{  
public static void main(String[] args)   
{  
show();  
}  
static void show()   
{  
System.out.println("It is an example of static method.");  
}  
}  

Output yang akan dihasilkan yaitu

It is an example of a static method.

Metode Instance

Metode kelas ini dikenal sebagai metode instance. Ini adalah metode non-statis yang ditentukan di kelas. Sebelum memanggil atau memanggil metode instance, perlu untuk membuat objek kelasnya. Mari kita lihat contoh metode instance.

public class InstanceMethodExample  
{  
public static void main(String [] args)  
{  
//Creating an object of the class  
InstanceMethodExample obj = new InstanceMethodExample();  
//invoking instance method   
System.out.println("The sum is: "+obj.add(12, 13));  
}  
int s;  
//user-defined method because we have not used static keyword  
public int add(int a, int b)  
{  
s = a+b;  
//returning the sum  
return s;  
}  
}  // hasil outputnya adalah : The sum is: 25

Ada dua jenis metode instance pada java yaitu

  1. Accessor Method
  2. Mutator Method

Accessor Method

Metode yang membaca variabel instan dikenal sebagai metode pengakses. Kita dapat dengan mudah mengidentifikasinya karena metode tersebut diawali dengan kata get. Ia juga dikenal sebagai getter. Ini mengembalikan nilai bidang privat. Ini digunakan untuk mendapatkan nilai bidang privat.

Contoh metode Accesor ini bisa dilihat pada kode berikut

public int getId()    
{    
return Id;    
}   

Mutator Method

Metode membaca variabel instance dan juga mengubah nilainya. Kita dapat dengan mudah mengidentifikasinya karena metode diawali dengan kumpulan kata. Ia juga dikenal sebagai penyetel atau pengubah. Itu tidak mengembalikan apapun. Ini menerima parameter dari tipe data yang sama yang bergantung pada bidang. Ini digunakan untuk mengatur nilai bidang privat. Contoh Mutator Method yaitu

public void setRoll(int roll)   
{  
this.roll = roll;  
}

Kemudian contoh dari gabungan kedua method ini yaitu

public class Student   
{  
private int roll;  
private String name;  
public int getRoll()    //accessor method  
{  
return roll;  
}  
public void setRoll(int roll) //mutator method  
{  
this.roll = roll;  
}  
public String getName()   
{  
return name;  
}  
public void setName(String name)   
{  
this.name = name;  
}  
public void display()  
{  
System.out.println("Roll no.: "+roll);  
System.out.println("Student name: "+name);  
}  
}  

Abstract Method

Metode yang tidak memiliki tubuh metode dikenal sebagai metode abstrak. Dengan kata lain, tanpa implementasi dikenal sebagai metode abstrak. Itu selalu mendeklarasikan di kelas abstrak. Artinya kelas itu sendiri harus abstrak jika memiliki metode abstrak. Untuk membuat metode abstrak, kami menggunakan kata kunci abstrak. sintaks metode ini yaitu

abstract void method_name();  

Selanjutnya kita dapat membuah sebuah contoh untuk metode ini

abstract class Demo //abstract class  
{  
//abstract method declaration  
abstract void display();  
}  
public class MyClass extends Demo  
{  
//method impelmentation  
void display()  
{  
System.out.println("Abstract method?");  
}  
public static void main(String args[])  
{  
//creating object of abstract class  
Demo obj = new MyClass();  
//invoking abstract method  
obj.display();  
}  
}  // outputnya akan menjadi : Abstract method...

Factory Method

Ini adalah metode yang mengembalikan objek ke kelas tempatnya berada. Semua metode statis adalah metode pabrik. Misalnya, NumberFormat obj = NumberFormat.getNumberInstance ();

Kata Kunci Void

Kata kunci void memungkinkan kita membuat metode yang tidak mengembalikan nilai. Di sini, dalam contoh berikut kami sedang mempertimbangkan metode metode void methodRankPoints. Metode ini adalah metode kosong, yang tidak mengembalikan nilai apa pun. Panggilan ke metode void harus berupa pernyataan, yaitu methodRankPoints (255.7) ;. Ini adalah pernyataan Java yang diakhiri dengan titik koma seperti yang ditunjukkan pada contoh berikut.

public class ExampleVoid {

   public static void main(String[] args) {
      methodRankPoints(255.7);
   }

   public static void methodRankPoints(double points) {
      if (points >= 202.5) {
         System.out.println("Rank:A1");
      }else if (points >= 122.4) {
         System.out.println("Rank:A2");
      }else {
         System.out.println("Rank:A3");
      }
   }
} // output nya akan menjadi : Rank:A1

Passing Parameters by Value

Saat bekerja di bawah proses pemanggilan, argumen harus diteruskan. Ini harus dalam urutan yang sama dengan parameternya masing-masing dalam spesifikasi metode. Parameter dapat diteruskan dengan nilai atau referensi.Meneruskan Parameter dengan Nilai berarti memanggil metode dengan parameter. Melalui ini, nilai argumen diteruskan ke parameter.

Program berikut menunjukkan contoh melewatkan parameter dengan nilai. Nilai argumen tetap sama bahkan setelah pemanggilan metode.

Live Demo
public class swappingExample {

   public static void main(String[] args) {
      int a = 30;
      int b = 45;
      System.out.println("Before swapping, a = " + a + " and b = " + b);

      // Invoke the swap method
      swapFunction(a, b);
      System.out.println("\n**Now, Before and After swapping values will be same here**:");
      System.out.println("After swapping, a = " + a + " and b is " + b);
   }

   public static void swapFunction(int a, int b) {
      System.out.println("Before swapping(Inside), a = " + a + " b = " + b);
      
      // Swap n1 with n2
      int c = a;
      a = b;
      b = c;
      System.out.println("After swapping(Inside), a = " + a + " b = " + b);
   }
}

Maka akan menghasilkan output berikut

Before swapping, a = 30 and b = 45
Before swapping(Inside), a = 30 b = 45
After swapping(Inside), a = 45 b = 30

**Now, Before and After swapping values will be same here**:
After swapping, a = 30 and b is 45

Metode Overloading

Ketika sebuah kelas memiliki dua atau lebih metode dengan nama yang sama tetapi parameter yang berbeda, itu dikenal sebagai metode overloading. Ini berbeda dengan menimpa. Dalam menimpa, suatu metode memiliki nama metode, jenis, jumlah parameter yang sama, dan lainnya.

Mari kita pertimbangkan contoh yang dibahas sebelumnya untuk menemukan jumlah minimum dari jenis bilangan bulat. Jika, katakanlah kita ingin mencari jumlah minimum tipe ganda. Kemudian konsep overloading akan diperkenalkan dengan membuat dua atau lebih metode dengan nama yang sama tetapi parameter yang berbeda.

Berikut ini merupakan contoh kode dari metode overloading

public class ExampleOverloading {

   public static void main(String[] args) {
      int a = 11;
      int b = 6;
      double c = 7.3;
      double d = 9.4;
      int result1 = minFunction(a, b);
      
      // same function name with different parameters
      double result2 = minFunction(c, d);
      System.out.println("Minimum Value = " + result1);
      System.out.println("Minimum Value = " + result2);
   }

   // for integer
   public static int minFunction(int n1, int n2) {
      int min;
      if (n1 > n2)
         min = n2;
      else
         min = n1;

      return min; 
   }
   
   // for double
   public static double minFunction(double n1, double n2) {
     double min;
      if (n1 > n2)
         min = n2;
      else
         min = n1;

      return min; 
   }
}

Kemudian outputnya adalah

Minimum Value = 6
Minimum Value = 7.3

Metode overloading membuat program dapat dibaca. Di sini, dua metode diberikan dengan nama yang sama tetapi dengan parameter yang berbeda. Hasilnya adalah angka minimum dari tipe integer dan double.

Menggunakan Argumen Command-Line

Terkadang Anda ingin meneruskan beberapa informasi ke dalam program saat Anda menjalankannya. Ini dilakukan dengan meneruskan argumen baris perintah ke main (). Argumen baris perintah adalah informasi yang secara langsung mengikuti nama program pada baris perintah ketika dijalankan. Untuk mengakses argumen baris perintah di dalam program Java cukup mudah. Mereka disimpan sebagai string dalam array String yang diteruskan ke main ().

Program berikut menampilkan semua argumen baris perintah yang dapat dipanggil

public class CommandLine {

   public static void main(String args[]) { 
      for(int i = 0; i<args.length; i++) {
         System.out.println("args[" + i + "]: " +  args[i]);
      }
   }
}

Kemudian kita dapat menjalankan lewat command-line dengan cara

$java CommandLine this is a command line 200 -100

Maka akan menghasilkan hasil berikut

args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100

Kata Kunci This

this adalah kata kunci di Java yang digunakan sebagai referensi ke objek kelas saat ini, dengan metode instance atau konstruktor. Menggunakan ini, Anda dapat merujuk anggota kelas seperti konstruktor, variabel, dan metode.

Catatan – Kata kunci this hanya digunakan dalam metode instance atau konstruktor

Secara umum, kata kunci this digunakan untuk –

  • Bedakan variabel instan dari variabel lokal jika memiliki nama yang sama, dalam konstruktor atau metode. contohnya adalah dengan kode berikut
class Student {
   int age;   
   Student(int age) {
      this.age = age;	
   }
}
  • Panggil satu jenis konstruktor (konstruktor berparameter atau default) dari yang lain dalam sebuah kelas. Ini dikenal sebagai pemanggilan konstruktor eksplisit. contohnya adalah dengan cara berikut
class Student {
   int age
   Student() {
      this(20);
   }
   
   Student(int age) {
      this.age = age;	
   }
}

Berikut adalah contoh yang menggunakan kata kunci this untuk mengakses anggota kelas. Salin dan tempel program berikut dalam file dengan nama, This_Example.java.

public class This_Example {
   // Instance variable num
   int num = 10;
	
   This_Example() {
      System.out.println("This is an example program on keyword this");	
   }

   This_Example(int num) {
      // Invoking the default constructor
      this();
      
      // Assigning the local variable num to the instance variable num
      this.num = num;	   
   }
   
   public void greet() {
      System.out.println("Hi Welcome to Tutorialspoint");
   }
      
   public void print() {
      // Local variable num
      int num = 20;
      
      // Printing the local variable
      System.out.println("value of local variable num is : "+num);
      
      // Printing the instance variable
      System.out.println("value of instance variable num is : "+this.num);
      
      // Invoking the greet method of a class
      this.greet();     
   }
   
   public static void main(String[] args) {
      // Instantiating the class
      This_Example obj1 = new This_Example();
      
      // Invoking the print method
      obj1.print();
	  
      // Passing a new value to the num variable through parametrized constructor
      This_Example obj2 = new This_Example(30);
      
      // Invoking the print method again
      obj2.print(); 
   }
}

Kemudian akan menghasilkan hasil berikut

This is an example program on keyword this 
value of local variable num is : 20
value of instance variable num is : 10
Hi Welcome to Tutorialspoint
This is an example program on keyword this 
value of local variable num is : 20
value of instance variable num is : 30
Hi Welcome to Tutorialspoint

Variable Arguments (Var-Args)

JDK 1.5 memungkinkan Anda meneruskan sejumlah variabel argumen dengan tipe yang sama ke sebuah metode. Parameter dalam metode ini dideklarasikan sebagai berikut

typeName... parameterName

Dalam deklarasi metode, Anda menentukan tipe yang diikuti dengan elipsis (…). Hanya satu parameter panjang variabel yang dapat ditentukan dalam sebuah metode, dan parameter ini harus menjadi parameter terakhir. Parameter reguler apa pun harus mendahuluinya. Kita dapat lihat dengan contoh dibawah

public class VarargsDemo {

   public static void main(String args[]) {
      // Call method with variable args  
	   printMax(34, 3, 3, 2, 56.5);
      printMax(new double[]{1, 2, 3});
   }

   public static void printMax( double... numbers) {
      if (numbers.length == 0) {
         System.out.println("No argument passed");
         return;
      }

      double result = numbers[0];

      for (int i = 1; i <  numbers.length; i++)
      if (numbers[i] >  result)
      result = numbers[i];
      System.out.println("The max value is " + result);
   }
}

Maka akan menghasilkan

The max value is 56.5
The max value is 3.0

Metode finalize()

Dimungkinkan untuk menentukan metode yang akan dipanggil tepat sebelum pemusnahan akhir objek oleh pengumpul sampah. Metode ini disebut finalize (), dan dapat digunakan untuk memastikan bahwa objek berakhir dengan bersih.

Misalnya, Anda mungkin menggunakan finalize () untuk memastikan bahwa file terbuka yang dimiliki oleh objek tersebut ditutup. Untuk menambahkan finalizer ke kelas, Anda cukup mendefinisikan metode finalize (). Runtime Java memanggil metode itu setiap kali akan mendaur ulang objek kelas itu.

Di dalam metode finalize (), Anda akan menentukan tindakan yang harus dilakukan sebelum objek dimusnahkan. Metode finalize () memiliki bentuk umum ini

protected void finalize( ) {
   // finalization code here
}

Di sini, kata kunci yang dilindungi adalah penentu yang mencegah akses ke finalize () dengan kode yang ditentukan di luar kelasnya.

Ini berarti Anda tidak dapat mengetahui kapan atau bahkan jika finalize () akan dijalankan. Misalnya, jika program Anda berakhir sebelum pengumpulan sampah terjadi, finalize () tidak akan dijalankan.

You may also like