0Pricing
Kotlin Academy · Pelajaran

Deklarasi object: Singleton Kotlin

Buat singleton dengan object dan pahami siklus hidupnya.

Deklarasi object: Singleton Kotlin adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.

object sebagai Singleton

Deklarasi object membuat satu instance—singleton yang aman untuk thread dan diinisialisasi secara lazy—hanya dengan satu baris kode.

Mendeklarasikan Singleton

Gunakan object Name { ... } untuk mendeklarasikan singleton dengan status dan metode.

object Logger {
    fun log(msg: String) = println("[LOG] $msg")
}
fun main() {
    Logger.log("App started")
    Logger.log("User signed in")
}

Status Singleton

Singleton dapat menyimpan status mutable—dapat diakses dari mana saja dan digunakan bersama secara global.

object Counter {
    var count = 0
    fun increment() { count++ }
}
fun main() {
    Counter.increment()
    Counter.increment()
    Counter.increment()
    println(Counter.count) // 3
}

Inisialisasi Lazy

Instance tunggal dibuat saat pertama kali diakses—tidak pernah lebih awal. JVM menjamin bahwa proses ini aman untuk thread.

object Heavy {
    init { println("Initializing Heavy...") }
    fun work() = "done"
}
fun main() {
    println("Before access")
    println(Heavy.work()) // triggers init now
    println(Heavy.work()) // no init again
}

Mengimplementasikan Interface

Singleton dapat mengimplementasikan interface, yang berguna untuk callback dan strategi.

interface Greeter { fun greet(name: String): String }
object EnglishGreeter : Greeter {
    override fun greet(name: String) = "Hello, $name!"
}
fun main() {
    println(EnglishGreeter.greet("Ada"))
}

Memperluas Kelas

Object juga dapat mewarisi kelas open.

open class Animal(val sound: String) {
    fun makeSound() = "The animal says $sound"
}
object Cat : Animal("Meow")
fun main() {
    println(Cat.makeSound())
}

Praktik: Konfigurasi

Singleton ideal untuk konfigurasi seluruh aplikasi yang tidak berubah setelah startup.

object AppConfig {
    val apiUrl = "https://api.example.com"
    val timeout = 5000
    val version = "1.0.0"
}
fun main() {
    println("v${AppConfig.version} -> ${AppConfig.apiUrl}")
}

Praktik: Fungsi Utilitas

Kelompokkan helper tanpa status yang berkaitan di dalam object sebagai metode mirip statis yang memiliki namespace.

object StringUtils {
    fun reverse(s: String) = s.reversed()
    fun capitalize(s: String) = s.replaceFirstChar { it.uppercase() }
}
fun main() {
    println(StringUtils.reverse("Kotlin"))
    println(StringUtils.capitalize("hello"))
}

Kesetaraan dan Identitas

Hanya ada satu instance, sehingga === selalu mengembalikan true untuk referensi objek yang sama.

object MySingleton
fun main() {
    val a = MySingleton
    val b = MySingleton
    println(a === b) // true
}

object dibandingkan class

class biasa perlu dibuat instance-nya. object adalah instance tersebut—tidak ada pemanggilan konstruktor.

class Service { fun ping() = "pong (class)" }
object SingletonService { fun ping() = "pong (object)" }
fun main() {
    val s = Service() // instance per call
    println(s.ping())
    println(SingletonService.ping()) // no instantiation
}

Keamanan Thread

Pembuatan instance singleton aman untuk thread berkat jaminan pemuatan kelas oleh JVM. Setiap status mutable yang Anda tambahkan di dalamnya menjadi tanggung jawab Anda.

object SharedCounter {
    @Volatile var count = 0
    @Synchronized fun inc() { count++ }
}
fun main() {
    repeat(1000) { SharedCounter.inc() }
    println(SharedCounter.count) // 1000
}

Pemeriksaan Cepat

Berapa banyak instance yang ada dari deklarasi object Kotlin?

Ringkasan

object Name { ... } mendeklarasikan singleton lazy yang aman untuk thread, dengan status, metode, interface, dan pewarisan. Gunakan object untuk konfigurasi, kelompok utilitas, dan layanan tanpa status.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Deklarasi object: Singleton Kotlin” gratis?

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

Apa yang akan aku pelajari di “Deklarasi object: Singleton Kotlin”?

Buat singleton dengan object dan pahami siklus hidupnya. Kamu berlatih Kotlin 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 Kotlin Academy?

Tidak diperlukan pengalaman sebelumnya. Kotlin 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 1 dari 4.

Berapa lama pelajaran “Deklarasi object: Singleton Kotlin” 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 Kotlin Academy ini?

Ya. Setiap pelajaran Kotlin 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. Deklarasi object: Singleton Kotlin
  2. companion object: Anggota Bergaya Statis di Kotlin
  3. Objek Anonim dan Ekspresi Object
  4. Metode Factory dengan companion object
← Kembali ke Kotlin Academy