Saya membaca pengenalan Oracle untuk konsep OOP dan saya menemukan deskripsi ini:
Objek dunia nyata memiliki dua karakteristik: Mereka semua memiliki keadaan dan perilaku. Anjing memiliki status (nama, warna, jenis, lapar) dan perilaku (menggonggong, mengambil, mengibaskan ekor). Objek perangkat lunak secara konseptual mirip dengan objek dunia nyata: mereka juga terdiri dari keadaan dan perilaku terkait.
Masalah saya dengan bagian itu adalah bahwa ketika menggambarkan keadaan campuran nya atribut sana juga. Misalnya, nama dan warna anjing adalah atributnya, sementara itu sedang lapar atau gundah adalah statusnya.
Jadi menurut pendapat saya, lebih akurat untuk memecah karakteristik objek menjadi tiga bagian: atribut, status, dan perilaku .
Tentu, ketika menerjemahkan ini ke dalam bahasa pemrograman saya dapat melihat bahwa partisi tiga kali lipat menjadi dua kali lipat, karena atribut dan status akan disimpan ke dalam bidang / variabel, sementara perilaku akan disimpan ke dalam metode / fungsi.
Tetapi secara konseptual lebih masuk akal untuk memisahkan 3 hal.
Berikut contoh lain: pertimbangkan lampu. Mengatakan bahwa baik ukuran lampu dan apakah itu dinyalakan atau tidak adalah keadaan adalah pendapat saya. Ukuran lampu adalah atribut, bukan status, saat sedang dinyalakan atau dimatikan adalah status.
Atau apakah saya melewatkan sesuatu?