Konsep Pemrograman Berorientasi Objek :

1. Abstraction (Abstraksi).

Pengabstrakan atau penyembunyian kerumitan dari suatu proses.

Contoh : Orang tidak perlu berfikir bahwa mobil adalah kumpulan dari puluhan atau ribuan bagian kecil (mesin, kabel, baut, roda, rem, dsb). Orang hanya perlu berpikir bahwa mobil adalah objek yang telah memiliki perilaku spesifik yaitu dapat digunakan sebagai alat transportasi sehingga mereka tinggal menggunakan atau mengendarai tanpa harus mengetahui kerumitan proses yang terdapat dalam mobil tersebut.

Jadi, seorang programmer tidak perlu tahu secara detail bagaimana cara membuat sebuah tombol. Yang diperlukan adalah bagaimana cara menggunakan objek tombol yang sudah ada (baik data/properti maupun method-nya).

2. Encapsulation (Pembungkusan).

Secara kode program, proses abstraksi dapat dilakukan dengan cara membungkus smeua kode dan data yang berkaitan ke dalam satu entitas tunggal yang disebut dengan objek. Dengan kata lain, sebenarnya proses pembungkusan itu sendiri merupakan cara atau mekanisme untuk melakukan abstraksi. Dalam pemrograman terdahulu, proses semacam ini sering dinamakan dengan penyembunyian informasi (information hidding).
Encapsulation dibagi menjadi 3 tingkatan akses:
1. Tingkat Akses private,
   Dengan mendeklarasikan data dan method menggunakan tingkat akses private, maka data dan method     tersebut hanya dapat diakses oleh kelas yang memilikinya saja. Ini berarti data dan method         tersebut tidak boleh diakses atau digunakan oleh kelas-kelas lain yang terdapat didalam            program.
2. Tingkat Akses protected,
   Ketika protected dideklarasikan maka data dan method dapat diakses juga oleh kelas-kelas           turunannya atau yang memiliki hubungan turunan.
   Contoh : Kelas A dideklarasikan dengan menggunakan akses protected yang didalamnya terdapat                 data x, maka ketika dibuat kelas B yang masih memiliki hubungan turunan dengan A,                  si kelas B tersebut bisa juga mengakses data x tersebut.
3. Tingkat Akses public,
   Tingkat akses public merupakan berkebalikan dari tingkat akses private. Data maupun method yang    bersifat publik dapat diakses oleh semua bagian didalam program. Dengan kata lain, tingkat         akses public dapat diakses oleh semua kelas yang ada didalam program, baik yang merupakan kelas    turunan maupun tidak sama sekali.
3. Inheritance (Pewarisan).

Sama seperti halnya dialam nyata (alam sekitar), sebagai contoh seorang anak pasti mewarisi sifat atau perilaku yang dimiliki oleh ibu/bapaknya.
Nah, didalam pemrograman Java, suatu kelas dapat diturunkan menjadi kelas-kelas baru lainnya yang akan mewarisi beberapa sifat atau perilaku dari kelas induknya. 

Contoh : Apabila kita memilik kelas A dalam pemrograman berorientasi objek, maka kita dapat membentuk kelas-kelas turunan dari kelas A (misalnya: kelas B) yang mewarisi sifat-sifat yang terkandung dalam kelas A. Dalam proses pembuatan kelas turunan tersebut, kita juga dapat menambahkan sifat dan perilaku baru kedalam kelas B yang sebelumnya tidak dimiliki didalam kelas A. Dalam terminologi Java, kelas induk dinamakan dengan superclass dan kelas turunannya disebut dengan subclass.

4. Polymorphism (Polimorfisme/Kebanyakrupaan).

Polimorfisme atau sering dinamakan dengan dynamic binding, late binding, maupun runtime binding ini adalah kemampuan suatu objek untuk mengungkap banyak hal melalui satu cara yang sama.

Contoh : Terdapat kelas A yang diturunkan menjadi kelas B, C, dan D. Dengan konsep polimorfisme, kita dapat menjalankan method-method yang terdapat pada kelas B, C, dan D hanya dari objek yang diinstansiasi dengan kelas A.