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

Kelas dan Objek

Java adalah bahasa yang berfokus pada Pemrograman Berorientasi Objek (OOP). Dalam OOP, kita memodelkan dunia nyata menggunakan objek. Suatu objek memiliki keadaan (data) dan perilaku (tindakan).

Kelas dan Objek

  • Kelas: Ini adalah cetak biru (atau templat) yang mendefinisikan properti dan perilaku suatu jenis objek.
  • Objek: Ini adalah instance konkret yang dibuat dari sebuah kelas.

Misalnya, jika Car adalah kelasnya, mobil Anda di garasi adalah objek sebenarnya.

Bidang Instance dan Konstruktor

Data di dalam kelas disebut bidang instance (atau atribut). Untuk menginisialisasi keadaan suatu objek pada saat pembuatannya, kami menggunakan metode khusus yang disebut konstruktor.

Konstruktor memiliki nama yang sama dengan kelas dan tidak memiliki tipe pengembalian (bahkan void).

Java
class Dog {
    // Instance fields
    String name;
    int age;

    // Constructor
    public Dog(String name, int age) {
        this.name = name; // 'this' refers to the current object's field
        this.age = age;
    }
}

Membuat Objek dengan new

Untuk membuat objek di memori, kita menggunakan kata kunci new diikuti oleh konstruktor kelas:

Java
public class Main {
    public static void main(String[] args) {
        // Creating a Dog object
        Dog myDog = new Dog("Fido", 3);

        // Accessing fields
        System.out.println(myDog.name + " is " + myDog.age + " years old.");
    }
}

Referensi this

Kata kunci this di Java mengacu pada objek saat ini di mana konstruktor atau metode sedang dieksekusi. Hal ini terutama digunakan untuk menghindari ambiguitas ketika parameter konstruktor memiliki nama yang sama dengan bidang instance objek (variabel membayangi):

Java
class User {
    String username;

    public User(String username) {
        this.username = username; // this.username is the instance field, username is the parameter
    }
}

Alokasi Memori: Stack vs Heap

Memahami bagaimana Java mengalokasikan memori sangatlah penting:

  1. Stack: Ini adalah area memori yang cepat dan terorganisir tempat variabel primitif dan referensi objek (alamat memori) lokal ke metode disimpan.
  2. Heap: Ini adalah area memori yang lebih besar dan dinamis tempat objek sebenarnya dialokasikan (menggunakan kata kunci new).

Saat kami mendeklarasikan Dog myDog = new Dog("Fido", 3);:

  • Referensi myDog dibuat di Stack.
  • Objek Dog sebenarnya dengan datanya dibuat di Heap.
  • Variabel myDog menunjuk ke lokasi objek di Heap.

Cobalah sendiri

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

Lengkapi kelas Person dengan menambahkan nama field dan konstruktor yang sesuai. Kemudian, pada metode utama, buat objek Person bernama p dengan nama Alice.

Memuat editor…
Tunjukkan petunjuk

Tulis `String name;` di dalam kelas, deklarasikan konstruktor `public Person(String name) { this.name = name; }` dan buat instance-nya dengan `Orang baru('Alice')`.

Solusi tersedia setelah 3 upaya

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

Buat kelas Buku dengan bidang judul (String) dan halaman (int), konstruktor lengkap, dan buat instance dalam metode utama sebuah buku bernama b dengan judul Moby Dick dan 600 halaman.

Memuat editor…
Tunjukkan petunjuk

Ingatlah untuk mendefinisikan kedua bidang di Buku, memetakannya di konstruktor menggunakan `ini.judul = judul;` dan `halaman ini = halaman;`, dan menggunakan `Buku baru('Moby Dick', 600)`.

Solusi tersedia setelah 3 upaya

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

Buat kelas Produk dengan nama bidang (String) dan harga (ganda), dan konstruktor yang menginisialisasi kedua bidang. Pada metode utama, buat objek Produk bernama p dengan nama Laptop dan harga 999.99.

Memuat editor…
Tunjukkan petunjuk

Deklarasikan kolom `String name;` dan `double price;` di Produk, tetapkan bidang tersebut di konstruktor dengan `this.name = name;` dan `this.price = price;`, dan terakhir buat objek di metode utama.

Solusi tersedia setelah 3 upaya