0Pricing
Java Academy · Pelajaran

Pola Record

Uraikan record dalam pola.

Pola Record adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.

Pola Rekaman

Pola rekaman mencocokkan sebuah rekaman dan membongkar strukturnya, lalu mengikat komponennya ke variabel dalam satu langkah. Anda tidak perlu lagi memanggil setiap pengakses secara manual.

Rekaman untuk Dibongkar

Mulailah dengan rekaman sederhana. Komponennya adalah bagian yang dapat diekstrak oleh pola.

public class Main {
    record Point(int x, int y) {}

    public static void main(String[] args) {
        Point p = new Point(3, 4);
        System.out.println(p.x() + ", " + p.y());
    }
}

Membongkar Struktur dengan instanceof

Daripada menulis instanceof Point p lalu p.x(), tulislah instanceof Point(int x, int y) untuk langsung mengikat x dan y.

public class Main {
    record Point(int x, int y) {}

    public static void main(String[] args) {
        Object obj = new Point(3, 4);
        if (obj instanceof Point(int x, int y)) {
            System.out.println("Sum: " + (x + y));
        }
    }
}

Komponen Menjadi Variabel Lokal

Nama di dalam pola (x, y) adalah variabel lokal baru yang menyimpan nilai komponen rekaman. Anda dapat memilih namanya sendiri; nama tersebut tidak harus sama dengan nama di rekaman.

public class Main {
    record Point(int x, int y) {}

    public static void main(String[] args) {
        Object obj = new Point(10, 20);
        if (obj instanceof Point(int a, int b)) {
            System.out.println("a=" + a + " b=" + b);
        }
    }
}

Menggunakan var dalam Pola

Anda dapat menulis var untuk sebuah komponen agar kompilator menyimpulkan tipenya. Ini berguna ketika tipe tersebut panjang.

public class Main {
    record Pair(String key, Integer value) {}

    public static void main(String[] args) {
        Object obj = new Pair("age", 30);
        if (obj instanceof Pair(var key, var value)) {
            System.out.println(key + " = " + value);
        }
    }
}

Pola dalam Pernyataan Pemilihan

Pola rekaman juga dapat digunakan dalam pernyataan pemilihan, sehingga cabang-cabangnya terbaca seperti bentuk data.

public class Main {
    record Point(int x, int y) {}

    static String classify(Object obj) {
        return switch (obj) {
            case Point(int x, int y) when x == y -> "on diagonal";
            case Point(int x, int y) -> "at " + x + "," + y;
            default -> "not a point";
        };
    }

    public static void main(String[] args) {
        System.out.println(classify(new Point(5, 5)));
        System.out.println(classify(new Point(1, 2)));
    }
}

Pencocokan dengan Inferensi Tipe

Tipe komponen dalam pola harus kompatibel dengan tipe yang dideklarasikan pada rekaman. Menggunakan tipe yang tepat atau var adalah pilihan yang aman.

Menggabungkan dengan Penjaga

Tambahkan penjaga when setelah pola rekaman agar pencocokan hanya terjadi ketika nilai yang dibongkar memenuhi suatu kondisi.

public class Main {
    record Temperature(double celsius) {}

    static String alert(Object o) {
        if (o instanceof Temperature(double c) && c > 38.0) {
            return "fever: " + c;
        }
        return "normal";
    }

    public static void main(String[] args) {
        System.out.println(alert(new Temperature(39.5)));
        System.out.println(alert(new Temperature(36.6)));
    }
}

Akses Data yang Lebih Bersih

Pola rekaman sangat berguna ketika Anda hanya memerlukan beberapa bidang. Pola ini menghilangkan rangkaian pemanggilan pengakses dan memperjelas data yang relevan tepat di tempat pencocokan.

Nilai Kosong dan Pola Rekaman

Seperti semua pola instanceof, pola rekaman bernilai false untuk null. Pembongkaran struktur hanya terjadi setelah nilai dipastikan sebagai instans rekaman yang tidak kosong.

Contoh Praktis

Bongkar struktur untuk menghitung nilai langsung dari komponennya.

public class Main {
    record Rectangle(int width, int height) {}

    static int area(Object o) {
        if (o instanceof Rectangle(int w, int h)) {
            return w * h;
        }
        return 0;
    }

    public static void main(String[] args) {
        System.out.println(area(new Rectangle(4, 5)));
        System.out.println(area("not a rect"));
    }
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang pola rekaman.

Rangkuman

Anda telah mempelajari pola rekaman.

  • Pola ini menguji tipe rekaman dan membongkar komponennya sekaligus.
  • Nama komponen adalah variabel lokal baru yang Anda pilih; var menyimpulkan tipenya.
  • Pola ini berfungsi dalam instanceof maupun switch.
  • Seperti semua pola, pola ini bernilai false untuk null.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pola Record” gratis?

Ya — teks lengkap “Pola Record” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pola Record”?

Uraikan record dalam pola. Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Java Academy?

Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Pola Record” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pencocokan Pola untuk instanceof
  2. Pola Record
  3. Pola Record Bertingkat
  4. Pola dalam switch
← Kembali ke Java Academy