Study
Scala

Object & Companion Object

Penjelasan

Scala tidak punya kata kunci `static` seperti Java. Sebagai gantinya, method/nilai "statis" ditaruh di dalam `object` — instance tunggal yang otomatis ada. Kalau sebuah `object` punya nama SAMA PERSIS dengan sebuah `class` di file yang sama, itu disebut companion object, dan keduanya bisa saling mengakses anggota private satu sama lain — pola umum untuk membuat factory method.

Contoh Konsep

class Siswa private (val nama: String, val nilai: Int)

object Siswa {
  // Factory method: cara terkontrol untuk membuat instance Siswa
  def buat(nama: String, nilai: Int): Siswa = {
    new Siswa(nama, nilai)
  }
}

val s = Siswa.buat("Budi", 90)   // dipanggil tanpa 'new', lewat companion object
println(s.nama)

Praktikum

Buat class Produk dengan constructor private, dan companion object Produk dengan factory method buat(nama: String, harga: Double) untuk membuatnya.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Companion object sering dipakai untuk validasi sebelum object dibuat (misal menolak harga negatif) — constructor class dibuat `private`, dan satu-satunya jalan membuat instance adalah lewat factory method companion object.