Alasan-alasan mengapa dibutuhkannya pemrograman berorientasi objek (Object Oriented Programming/OOP) adalah :
- Aplikasi yang dibutuhkan semakin kompleks
- Hemat waktu dalam mengembangkan aplikasi
- Tampilan grafis untuk berkomunikasi dengan pemakai
- Kebutuhan untuk mengakses data dari berbagai format
- Pengembangan database client/server
- Pemrograman prosedural seringkali mengulang sebuah perosedur diberbagai tempat, sehingga pemeliharaan program menjadi lebih sulit.
- Object (class) yaitu tipe data yang mengenkapsulasi data dan operasi di dalam sebuah unit tunggal. Sebelum ada OOP, data dan operasi (function) dianggap sebagai elemen-elemen yang terpisah.
- Enkapsulasi, kombinasi data dan fungsionalitas ke dalam sebuah unit tunggal
- Inheritance, artinya objek membawa fungsionalitas dari objek induknya (ancestor), dan objek yang bersangkutan dapat mengubah sifat dab ancestornya.
- Polymorphism, berarti objek-objek yang berbeda, ayng diturunkan dari ancestor yang sama mempunyai method yang sama.




