Konstruktor Utama dan Parameter Properti
Deklarasikan class dengan konstruktor utama dan deklarasi properti secara langsung.
Konstruktor Utama dan Parameter Properti 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.
Konstruktor Utama
Kelas Kotlin mendeklarasikan konstruktor utama tepat setelah nama kelas di dalam tanda kurung. Tidak ada isi metode — hanya daftar parameter.
Kelas Paling Sederhana
Konstruktor utama tanpa pengubah tidak terlihat setelah nama kelas.
class Greeter(val name: String) {
fun greet() = "Hello, $name!"
}
fun main() {
println(Greeter("Ada").greet())
}Parameter Properti
Tambahkan awalan val atau var pada parameter konstruktor untuk menjadikannya properti kelas dalam satu langkah.
class Person(val name: String, var age: Int)
fun main() {
val p = Person("Bob", 30)
println("${p.name} is ${p.age}")
p.age = 31
println("Now ${p.age}")
}Parameter Tanpa val/var
Parameter konstruktor tanpa val/var bersifat lokal bagi konstruktor — parameter tersebut dapat digunakan dalam blok inisialisasi atau penginisialisasi properti, tetapi tidak dapat diakses setelahnya.
class Logger(prefix: String) {
val msg = "$prefix: ready"
}
fun main() {
val l = Logger("[INFO]")
println(l.msg)
// l.prefix // ERROR — not a property
}Nilai Parameter Bawaan
Berikan nilai bawaan untuk parameter konstruktor agar tidak perlu menulis kode berulang untuk kelebihan beban.
class User(
val name: String,
val age: Int = 0,
val email: String = ""
)
fun main() {
println(User("Ana").age) // 0
println(User("Ben", 25).email) // ""
println(User("Cal", 30, "c@x.io").email)
}Argumen Bernama
Lewati pengurutan berdasarkan posisi dan beri nama parameter saat pemanggilan — terutama berguna jika menggunakan nilai bawaan.
class HttpClient(
val baseUrl: String,
val timeoutMs: Int = 5000,
val retries: Int = 3
)
fun main() {
val c = HttpClient(
baseUrl = "https://api.example.com",
retries = 5
)
println("retries=${c.retries} timeout=${c.timeoutMs}")
}Visibilitas pada Konstruktor
Gunakan private constructor untuk mencegah pembuatan instans dari luar — umum digunakan bersama metode pabrik.
class Singleton private constructor() {
companion object {
val instance = Singleton()
}
}
fun main() {
val s = Singleton.instance
println(s)
}Konstruktor Sekunder
Tambahkan konstruktor tambahan dengan kata kunci constructor. Konstruktor tersebut harus mendelegasikan ke konstruktor utama dengan this(...).
class Point(val x: Int, val y: Int) {
constructor(value: Int) : this(value, value)
}
fun main() {
println("${Point(3).x}, ${Point(3).y}") // 3, 3
}Konstruktor dengan Visibilitas
Anda dapat menggunakan visibilitas yang berbeda untuk setiap konstruktor — berguna untuk pustaka.
class Lib internal constructor(val key: String) {
companion object {
fun create(key: String) = Lib(key)
}
}
fun main() {
println(Lib.create("abc").key)
}Ringkasan Blok Inisialisasi
Kode yang harus dijalankan selama pembuatan instans ditempatkan dalam blok init { }. Beberapa blok inisialisasi dijalankan sesuai urutan dalam kode sumber.
class Validator(val value: String) {
init { require(value.isNotBlank()) { "value cannot be blank" } }
}
fun main() {
println(Validator("ok").value)
// Validator("") // throws IllegalArgumentException
}Menggabungkan Properti dan Logika
Deklarasi properti, konstruktor sekunder, dan blok inisialisasi dapat digabungkan menjadi alur pemrosesan inisialisasi yang fleksibel.
class Account(
val owner: String,
initialBalance: Double = 0.0
) {
var balance: Double = initialBalance
private set
init {
require(initialBalance >= 0) { "balance must be non-negative" }
}
fun deposit(amount: Double) { balance += amount }
}
fun main() {
val a = Account("Alice", 100.0)
a.deposit(50.0)
println("${a.owner}: ${a.balance}") // Alice: 150.0
}Pemeriksaan Singkat
Apa yang dilakukan kata kunci val ketika digunakan pada parameter konstruktor utama?
Ringkasan
Konstruktor utama berada di bagian kepala kelas. Gunakan val/var untuk parameter properti; parameter tanpa awalan hanya bersifat lokal bagi konstruktor. Tambahkan nilai bawaan untuk mengurangi kelebihan beban, dan jalankan logika persiapan dalam blok init. Konstruktor sekunder mendelegasikan tugas melalui this(...).
Belajar Kotlin dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Konstruktor Utama dan Parameter Properti” gratis?
Ya — teks lengkap “Konstruktor Utama dan Parameter Properti” 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 “Konstruktor Utama dan Parameter Properti”?
Deklarasikan class dengan konstruktor utama dan deklarasi properti secara langsung. 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 “Konstruktor Utama dan Parameter Properti” 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
- Konstruktor Utama dan Parameter Properti
- Blok init dan Urutan Inisialisasi
- Getter dan Setter Kustom dengan field
- lateinit dan Inisialisasi Tertunda