A. COMPOSITION
Sebuah kelas bisa mempunyai
references terhadap objek dari anggota kelas lainnya, Hal ini dinamakan
composition (komposisi) dan sering disebut juga
has-a relationship. Misalnya, suatu objek
AlarmClock memerlukan
waktu yang berjalan dan
waktu yang diperlukan untuk berbunyi, jadi wajar untuk memasukkan dua
references ke dalam objek
Time di
objek
AlarmClock.
Contoh di bawah ini tidak ada kaitannya dengan contoh AlarmClock tadi, Di sini kita akan memberi contoh kelas Date, Employee, dan EmployeTest.
Source code kelas "Date"
Source code kelas "Employee"
Source code kelas "EmployeeTest" (untuk menjalankan kelas "Date" dan "Employee")
Output:
B. ENUMERATIONS
Enumeration (Enum) digunakan untuk mendefinisikan sekumpulan suatu konstanta yang merepresentasikan
identifier yang unik. Layaknya sebuah class, enum dideklarasikan seperti halnya
class,
constructor,
field, dan
method.
Masing-masing
enum declaration mendeklarasikan sebuah kelas enum dengan batasan seperti:
- Konstanta enum merupakan implicity final, karena mereka mendeklarasikan konstanta yang seharusnya tidak dimodifikasi.
- Konstanta enum merupakan implicity static.
- Segala percobaan untuk membuat objek dari sebuah tipe enum dengan operator new menghasilkan compilation error.
Berikut contoh dari implementasi Enumeration:
Source code dari enum "Book"
Source code dari "EnumTest"
Output:
C. STATIC CLASS MEMBERS
Setiap objek mempunyai
copy-an dari semua
instance variabel dari suatu kelas sendiri. Dalam suatu kasus, hanya satu
copy-an
dari suatu variabel tertentu yang seharusnya dibagi oleh semua objek dari suatu kelas. Sebuah
static field (biasanya disebut
class variable) digunakan dalam macam kasus tersebut. Sebuah variabel
static mewakili
classwide information (semua objek dalam kelas berbagi data yang sama). Deklarasi dari variabel
static diawali dengan keyword "
static".
Sebuah
static method tidak dapat mengakses anggota kelas
non-static, karena sebuah
static method dapat dipanggil bahkan saat objek dari kelas tidak diinstansisasi. Untuk alasan yang sama,
this reference tidak dapat digunakan di dalam
static method.
this reference harus merujuk ke suatu spesifik objek dari kelas, dan ketika
static method dipanggil, kemungkinan tidak ada objek dari kelas itu dalam memori.
Berikut contohnya:
Source code Employee
Source code EmployeeTest
Output: