Obyek adalah kunci untuk memahami teknologi berorientasi objek. Lihatlah ke sekeliling sekarang dan Anda akan menemukan banyak contoh benda dunia nyata: anjing Anda, meja Anda, pesawat televisi, sepeda Anda.
Objek dunia nyata berbagi dua karakteristik: Mereka semua memiliki negara dan perilaku. Anjing memiliki negara (nama, warna, jenis, lapar) dan perilaku (menggonggong, mengambil, menggoyangkan ekor). Sepeda juga memiliki negara (gigi saat, irama pedal saat ini, kecepatan arus) dan perilaku (mengubah gigi, mengubah irama pedal, menerapkan rem). Mengidentifikasi negara dan perilaku untuk objek dunia nyata adalah cara yang bagus untuk mulai berpikir dalam hal pemrograman berorientasi obyek.
Luangkan waktu sebentar sekarang untuk mengamati benda dunia nyata yang berada di daerah dekat Anda. Untuk setiap objek yang Anda lihat, tanyakan pada diri sendiri dua pertanyaan: “Apa yang mungkin negara dapat objek ini berada di?” dan “Apa kemungkinan perilaku dapat objek ini melakukan?”. Pastikan untuk menuliskan pengamatan Anda. Seperti yang Anda lakukan, Anda akan melihat bahwa benda-benda dunia nyata bervariasi dalam kompleksitas, lampu desktop Anda mungkin hanya memiliki dua kemungkinan negara (on dan off) dan dua perilaku yang mungkin (menghidupkan, mematikan), tetapi radio desktop Anda mungkin memiliki tambahan negara (on, off, volume saat ini, stasiun saat ini) dan perilaku (menghidupkan, mematikan, meningkatkan volume, penurunan volume, mencari, memindai, dan lagu). Anda juga dapat melihat bahwa beberapa benda, pada gilirannya, akan juga mengandung benda-benda lainnya. Observasi ini dunia nyata semua diterjemahkan ke dalam dunia pemrograman berorientasi obyek.
Sebuah objek perangkat lunak.
Objek perangkat lunak secara konseptual mirip dengan objek dunia nyata: mereka juga terdiri dari perilaku negara dan terkait. Sebuah objek menyimpan negara dalam bidang (variabel dalam beberapa bahasa pemrograman) dan mengekspos perilakunya melalui metode (fungsi dalam beberapa bahasa pemrograman). Metode beroperasi pada keadaan internal obyek dan berfungsi sebagai mekanisme utama untuk komunikasi objek-to-objek. Menyembunyikan keadaan internal dan mengharuskan semua interaksi harus dilakukan melalui metode obyek dikenal sebagai enkapsulasi data – prinsip dasar pemrograman berorientasi obyek.
Pertimbangkan sepeda, misalnya:
Sebuah sepeda dimodelkan sebagai objek perangkat lunak.
Dengan menghubungkan negara (kecepatan arus, irama pedal saat ini, dan gigi saat) dan menyediakan metode untuk mengubah keadaan itu, objek tetap mengendalikan bagaimana dunia luar diperbolehkan untuk menggunakannya. Sebagai contoh, jika sepeda hanya memiliki 6 gigi, sebuah metode untuk mengubah gigi bisa menolak nilai apapun yang kurang dari 1 atau lebih besar dari 6.
Bundling kode ke objek perangkat lunak individu menyediakan sejumlah manfaat, termasuk:
- Modularitas: Kode sumber untuk sebuah objek dapat ditulis dan dipelihara secara independen dari kode sumber untuk objek lain. Setelah dibuat, obyek dapat dengan mudah diedarkan dalam sistem.
- Informasi-bersembunyi: Dengan berinteraksi hanya dengan metode obyek, rincian implementasi internal tetap tersembunyi dari dunia luar.
- Kode menggunakan kembali: Jika suatu benda sudah ada (mungkin ditulis oleh pengembang perangkat lunak lain), Anda dapat menggunakan objek dalam program Anda. Hal ini memungkinkan spesialis untuk melaksanakan / menguji / men-debug kompleks, benda-tugas tertentu, yang kemudian dapat percaya untuk berjalan dalam kode Anda sendiri.
- Pluggability dan debugging mudah: Jika suatu objek tertentu ternyata bermasalah, Anda hanya dapat menghapusnya dari aplikasi Anda dan pasang di objek yang berbeda sebagai penggantinya. Hal ini analog dengan memperbaiki masalah mekanis di dunia nyata. Jika sebuah istirahat baut, Anda menggantinya, bukan seluruh mesin.
Source : http://docs.oracle.com/javase/tutorial/java/concepts/object.html