Lompati ke konten utama
Modul 2 · Pelajaran 2 dari 24/14 dalam kursus~12 min
Pelajaran modul (2/2)

Metode dan Kelebihan Beban

Metode mendefinisikan perilaku suatu objek. Kita dapat menganggapnya sebagai fungsi yang dideklarasikan di dalam kelas yang beroperasi pada bidang instance objek atau parameter masuk.

Mendefinisikan Metode

Sebuah metode di Java terdiri dari:

  1. Pengubah akses (misalnya, public, private).
  2. Jenis pengembalian (misalnya, int, String, atau void jika tidak mengembalikan apa pun).
  3. Nama metode di camelCase.
  4. Parameter diapit tanda kurung.
  5. Badan metode diapit kurung kurawal.
Java
class Person {
    String name;

    public Person(String name) {
        this.name = name;
    }

    // Method with return type String
    public String greet() {
        return "Ciao, mi chiamo " + name;
    }
}

Memanggil Metode

Untuk memanggil metode pada objek yang dibuat, kami menggunakan notasi titik .:

Java
public class Main {
    public static void main(String[] args) {
        Person p = new Person("Marco");
        String message = p.greet(); // Calling the method
        System.out.println(message);
    }
}

Metode Kelebihan Beban

Di Java, dua atau lebih metode dalam kelas yang sama dapat memiliki nama yang sama, asalkan metode tersebut memiliki daftar parameter berbeda (dalam jumlah, urutan, atau jenis parameter). Konsep ini dikenal sebagai Kelebihan beban.

Kompilator memutuskan metode mana yang akan dipanggil dengan menganalisis argumen yang disampaikan selama panggilan.

Java
class Printer {
    // Method to print an integer
    public void printValue(int number) {
        System.out.println("Intero: " + number);
    }

    // Overloaded method to print a string
    public void printValue(String text) {
        System.out.println("Testo: " + text);
    }
}

Parameter Melewati Nilai

Di Java, semua parameter diteruskan berdasarkan nilai (nilai demi nilai). Artinya ketika Anda meneruskan argumen ke suatu metode, Java akan membuat salinan nilai variabel dan meneruskannya ke metode tersebut.

  • Untuk tipe primitif, nilai asli di luar metode tidak pernah berubah, meskipun diubah di dalam metode.
  • Untuk objek/referensi, referensi ke objek disalin. Ini berarti bahwa meskipun kita tidak dapat mengubah alamat memori yang ditunjuk oleh objek asli, kita dapat mengubah keadaan internalnya (misalnya, bidangnya) dan perubahan tersebut akan terlihat di luar.

Batasan Kelebihan Beban: Tipe Pengembalian

Penting untuk dicatat bahwa Anda tidak dapat membebani metode hanya berdasarkan tipe pengembalian. Misalnya, kode berikut akan menyebabkan kesalahan kompilasi:

Java
class Example {
    // ERROR: The signature of the two methods is considered identical
    public int getNumber() { return 42; }
    public double getNumber() { return 42.0; }
}

Kompiler perlu membedakan metode hanya berdasarkan parameter untuk memutuskan versi mana yang akan dipanggil pada waktu kompilasi (kelebihan beban diselesaikan pada waktu kompilasi).


Cobalah sendiri

Latihan#java.m2.l2.e1
Upaya: 0Memuat…

Tambahkan metode public int add(int a, int b) ke kelas Kalkulator yang mengembalikan jumlah dua angka. Dalam metode utama, panggil metode ini pada objek calc dan tetapkan hasilnya ke variabel integer.

Memuat editor…
Tunjukkan petunjuk

Deklarasikan metode ini sebagai `public int add(int a, int b) { return a + b; }` dan memanggilnya dalam metode utama sebagai `int result = calc.add(5, 10);`.

Solusi tersedia setelah 3 upaya

Latihan#java.m2.l2.e2
Upaya: 0Memuat…

Bebankan metode tambah di kelas Kalkulator dengan membuat metode lain yang menerima dua parameter ganda dan mengembalikan jumlahnya.

Memuat editor…
Tunjukkan petunjuk

Tulis `tambahan ganda publik(ganda a, ganda b) { return a + b; }` tepat di bawah metode penambahan pertama.

Solusi tersedia setelah 3 upaya

Latihan#java.m2.l2.e3
Upaya: 0Memuat…

Tambahkan metode public int perkalian(int a, int b) ke kelas Kalkulator yang mengembalikan produk dari dua angka. Dalam metode utama, panggil metode ini pada objek calc dan tetapkan hasilnya ke variabel integer.

Memuat editor…
Tunjukkan petunjuk

Deklarasikan metode ini sebagai `public int Multiply(int a, int b) { return a * b; }` dan memanggilnya dalam metode utama sebagai `int result = calc.multiply(5, 10);`.

Solusi tersedia setelah 3 upaya