{tocify} $title={Daftar Isi}
Keyword required, this, dan super:
Ada beberapa keyword yang dapat digunakan saat mendefinisikan constructor, keyword ini digunakan di dalam constructor untuk mengakses properti pada superclass maupun mencegah suatu variable bernilai null.
Required:
Anotasi / keyword required digunakan untuk menandai / memastikan optional named parameter dapat berisikan nilai atau tidak null, keyword required dapat digunakan di dalam sebuah constructor ataupun fungsi biasa, contohnya sebagai berikut:
Keyword required dimaksudkan agar atribut pada optional named parameter tidak dapat bernilai null sementara anda tidak tahu pasti atribut mana yang lebih dulu ditempatkan di dalam optional named parameter karena pada dasarnya sebuah fungsi atau constructor dengan default parameter akan selalu membutuhkan nilai sehingga argumen dapat dilewati dan pemberian nilai dilakukan secara berurutan sesuai dengan urutan atribut / variable di dalam parameter, adapun contohnya sebagai berikut:
Super:
Jika class parent memiliki constructor dengan keyword required ataupun this maka pada class turunannya perlu mengakses atribut yang sama dari class parentnya, untuk mengaksesnya anda perlu menggunakan keyword super, contohnya sebagai berikut:
Dari contoh di atas anda dapat lihat bahwa atribut jenis pada abstract kelas yang menjadi superclass atau class parent memiliki keyword required maka pada kelas turunannya harus menyertakan atribut "jenis" sesuai dengan constructor pada kelas induknya, anda dapat menggunakan dua cara untuk mengakses atribut tersebut yaitu dengan parameterized di mana keyword super digunakan di dalam parameter dan non-parameterized di mana keyword super terletak setelah parameter constructor dari kelas turunan.
Keyword required wajib dibutuhkan jika pada class parent memiliki keyword required ataupun this, jika tidak ada keyword required ataupun this anda tetap dapat menggunakan keyword super untuk mengakses atribut pada class parent jika memang perlu anda lakukan, contohnya sebagai berikut:
This:
Fungsi keyword this hampir sama dengan required hanya saja jika required dapat digunakan di luar constructor maka keyword this hanya dapat digunakan di dalam sebuah constructor baik dengan default parameter atau optional named/positional parameter, contohnya sebagai berikut:
Salah satu keunggulan dari keyword this adalah mencegah ambiguitas (kesamaan nama) antara atribut class dengan atribut parameter, untuk itu anda perlu menggunakan atribut class di dalam parameter jika hendak menggunakan keyword this. Anda juga dapat menggabungkan keyword this dengan required yang bertujuan untuk mengurangi ambiguitas pada optional named parameter, adapun contohnya sebagai berikut: