Java - Metode
Metode Java adalah kumpulan pernyataan yang dikelompokkan bersama untuk melakukan operasi. Saat Anda memanggil System.out.println() metode, misalnya, sistem benar-benar mengeksekusi beberapa pernyataan untuk menampilkan pesan di konsol.
Sekarang Anda akan mempelajari cara membuat metode Anda sendiri dengan atau tanpa nilai balik, memanggil metode dengan atau tanpa parameter, dan menerapkan abstraksi metode dalam desain program.
Metode Pembuatan
Mempertimbangkan contoh berikut untuk menjelaskan sintaks suatu metode
Sintaks
public static int methodName(int a, int b) {
// body
}
Di sini,
Definisi metode terdiri dari header metode dan badan metode. Hal yang sama ditunjukkan dalam sintaks berikut
Sintaks
modifier returnType nameOfMethod (Parameter List) {
// method body
}
Sintaks yang ditunjukkan di atas termasuk
-
pengubah Ini mendefinisikan jenis akses metode dan opsional untuk digunakan.
-
Jenis Pengembalian Metode dapat mengembalikan nilai.
-
namaMetode Ini adalah nama metode. Tanda tangan metode terdiri dari nama metode dan daftar parameter.
-
Daftar Parameter Daftar parameter, itu adalah jenis, urutan, dan jumlah parameter dari suatu metode. Ini opsional, metode mungkin berisi parameter nol.
-
tubuh metode Badan metode mendefinisikan apa yang dilakukan metode dengan pernyataan.
Contoh
Berikut adalah kode sumber dari metode yang didefinisikan di atas yang disebut min() . Metode ini mengambil dua parameter num1 dan num2 dan mengembalikan 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;
}
Metode Panggilan
Untuk menggunakan metode, itu harus dipanggil. Ada dua cara memanggil metode, yaitu metode mengembalikan nilai atau tidak mengembalikan apa pun (tidak mengembalikan nilai).
Proses pemanggilan metode sederhana. Ketika sebuah program memanggil sebuah metode, kontrol program akan ditransfer ke metode yang dipanggil. Metode yang dipanggil ini kemudian mengembalikan kontrol ke pemanggil dalam dua kondisi, ketika
- pernyataan kembali dieksekusi.
- mencapai metode yang mengakhiri kurung kurawal.
Metode yang mengembalikan void dianggap sebagai panggilan ke pernyataan. Mari kita perhatikan sebuah contoh
System.out.println("This is tutorialspoint.com!");
Metode mengembalikan nilai dapat dipahami dengan contoh berikut −
int result = sum(6, 9);
Berikut adalah contoh untuk mendemonstrasikan cara mendefinisikan metode dan cara memanggilnya
Contoh
Demo Langsung
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;
}
}
Ini akan menghasilkan hasil berikut
Keluaran
Minimum value = 6
Kata Kunci yang kosong
Kata kunci void memungkinkan kita untuk membuat metode yang tidak mengembalikan nilai. Di sini, dalam contoh berikut, kami sedang mempertimbangkan metode void methodRankPoints . Metode ini adalah metode batal, 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.
Contoh
Demo Langsung
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");
}
}
}
Ini akan menghasilkan hasil berikut
Keluaran
Rank:A1
Meneruskan Parameter berdasarkan Nilai
Saat bekerja di bawah proses pemanggilan, argumen harus diteruskan. Ini harus dalam urutan yang sama dengan parameter masing-masing dalam spesifikasi metode. Parameter dapat diteruskan dengan nilai atau referensi.
Melewati Parameter dengan Nilai berarti memanggil metode dengan parameter. Melalui ini, nilai argumen diteruskan ke parameter.
Contoh
Program berikut menunjukkan contoh melewati parameter dengan nilai. Nilai argumen tetap sama bahkan setelah pemanggilan metode.
Demo Langsung
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);
}
}
Ini akan menghasilkan hasil berikut
Keluaran
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 Kelebihan Beban
Ketika sebuah kelas memiliki dua atau lebih metode dengan nama yang sama tetapi parameternya berbeda, hal itu dikenal sebagai metode overloading. Ini berbeda dengan override. Dalam override, sebuah metode memiliki nama metode, jenis, jumlah parameter yang sama, dll.
Mari kita perhatikan contoh yang dibahas sebelumnya untuk menemukan jumlah minimum tipe integer. Jika, misalkan kita ingin mencari jumlah minimum tipe ganda. Kemudian konsep overloading akan diperkenalkan untuk membuat dua atau lebih metode dengan nama yang sama tetapi parameter yang berbeda.
Contoh berikut menjelaskan hal yang sama
Contoh
Demo Langsung
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;
}
}
Ini akan menghasilkan hasil berikut
Keluaran
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. Jumlah minimum dari tipe integer dan double adalah hasilnya.
Menggunakan Argumen Baris Perintah
Terkadang Anda ingin menyampaikan 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 saat dijalankan. Untuk mengakses argumen baris perintah di dalam program Java cukup mudah. Mereka disimpan sebagai string dalam array String yang diteruskan ke main().
Contoh
Program berikut menampilkan semua argumen baris perintah yang disebut dengan −
public class CommandLine {
public static void main(String args[]) {
for(int i = 0; i<args.length; i++) {
System.out.println("args[" + i + "]: " + args[i]);
}
}
}
Coba jalankan program ini seperti yang ditunjukkan di sini
$java CommandLine this is a command line 200 -100
Ini akan menghasilkan hasil berikut
Keluaran
args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100
Kata kunci ini
ini adalah kata kunci di Java yang digunakan sebagai referensi ke objek kelas saat ini, dengan metode instan atau konstruktor. Menggunakan ini Anda dapat merujuk anggota kelas seperti konstruktor, variabel, dan metode.
Catatan Kata kunci ini hanya digunakan dalam metode instance atau konstruktor
Secara umum, kata kunci ini digunakan untuk
class Student {
int age;
Student(int age) {
this.age = age;
}
}
class Student {
int age
Student() {
this(20);
}
Student(int age) {
this.age = age;
}
}
Contoh
Berikut adalah contoh yang menggunakan ini kata kunci untuk mengakses anggota kelas. Salin dan tempel program berikut ke dalam file dengan nama, This_Example.java .
Demo Langsung
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();
}
}
Ini akan menghasilkan hasil berikut
Keluaran
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
Argumen Variabel(var-args)
JDK 1.5 memungkinkan Anda untuk meneruskan sejumlah variabel argumen dengan tipe yang sama ke suatu metode. Parameter dalam metode dideklarasikan sebagai berikut
typeName... parameterName
Dalam deklarasi metode, Anda menentukan tipe diikuti dengan elipsis (...). Hanya satu parameter panjang variabel yang dapat ditentukan dalam suatu metode, dan parameter ini harus menjadi parameter terakhir. Parameter reguler apa pun harus mendahuluinya.
Contoh
Demo Langsung
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);
}
}
Ini akan menghasilkan hasil berikut
Keluaran
The max value is 56.5
The max value is 3.0
Metode finalize()
Dimungkinkan untuk mendefinisikan metode yang akan dipanggil tepat sebelum penghancuran akhir objek oleh pengumpul sampah. Metode ini disebut finalize() , dan dapat digunakan untuk memastikan bahwa suatu objek berakhir dengan bersih.
Misalnya, Anda dapat menggunakan finalize() untuk memastikan bahwa file terbuka yang dimiliki oleh objek tersebut telah ditutup.
Untuk menambahkan finalizer ke kelas, Anda cukup mendefinisikan metode finalize(). Java runtime memanggil metode tersebut setiap kali akan mendaur ulang objek dari kelas tersebut.
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 dieksekusi. Misalnya, jika program Anda berakhir sebelum pengumpulan sampah terjadi, finalize() tidak akan dijalankan.