Kelas dan Objek Java

1. Ikhtisar

Dalam tutorial singkat ini, kita akan melihat dua blok bangunan dasar dari bahasa pemrograman Java - kelas dan objek. Itu adalah konsep dasar Pemrograman Berorientasi Objek (OOP), yang kami gunakan untuk memodelkan entitas kehidupan nyata.

Dalam OOP, kelas adalah cetak biru atau templat untuk objek. Kami menggunakannya untuk mendeskripsikan jenis entitas.

Di sisi lain, benda adalah makhluk hidup yang diciptakan dari kelas. Mereka berisi keadaan tertentu dalam bidangnya dan menampilkan perilaku tertentu dengan metode mereka.

2. Kelas

Sederhananya, kelas mewakili definisi atau jenis objek. Di Java, kelas bisa berisi kolom, konstruktor, dan metode.

Mari kita lihat contoh menggunakan kelas Java sederhana yang merepresentasikan Mobil :

class Car { // fields String type; String model; String color; int speed; // constructor Car(String type, String model, String color) { this.type = type; this.model = model; this.color = color; } // methods int increaseSpeed(int increment) { this.speed = this.speed + increment; return this.speed; } // ... } 

Kelas Java ini merepresentasikan mobil pada umumnya. Kami dapat membuat jenis mobil apa pun dari kelas ini. Kami menggunakan bidang untuk menahan negara dan konstruktor untuk membuat objek dari kelas ini.

Setiap kelas Java memiliki konstruktor kosong secara default. Kami menggunakannya jika kami tidak menyediakan implementasi khusus seperti yang kami lakukan di atas. Beginilah cara konstruktor default mencari kelas Car kita :

Car(){} 

Konstruktor ini hanya menginisialisasi semua bidang objek dengan nilai defaultnya. String diinisialisasi menjadi nol dan bilangan bulat menjadi nol.

Sekarang, kelas kami memiliki konstruktor khusus karena kami ingin objek kami memiliki bidangnya yang ditentukan saat kami membuatnya:

Car(String type, String model) { // ... } 

Singkatnya, kami menulis kelas yang mendefinisikan mobil. Properti-propertinya dijelaskan oleh bidang, yang berisi status objek kelas, dan perilakunya dijelaskan menggunakan metode.

3. Objek

Sementara kelas diterjemahkan selama waktu kompilasi, objek dibuat dari kelas pada waktu proses .

Objek dari kelas disebut instance, dan kami membuat serta menginisialisasinya dengan konstruktor:

Car focus = new Car("Ford", "Focus", "red"); Car auris = new Car("Toyota", "Auris", "blue"); Car golf = new Car("Volkswagen", "Golf", "green"); 

Sekarang, kami telah membuat objek Car yang berbeda , semuanya dari satu kelas. Inilah inti dari semuanya, untuk menentukan cetak biru di satu tempat, dan kemudian, untuk menggunakannya kembali berkali-kali di banyak tempat.

Sejauh ini, kami memiliki tiga objek Mobil , dan semuanya diparkir karena kecepatannya nol. Kita bisa mengubahnya dengan menjalankan metode peningkatanSpeed kita :

focus.increaseSpeed(10); auris.increaseSpeed(20); golf.increaseSpeed(30); 

Sekarang, kami telah mengubah keadaan mobil kami - semuanya bergerak dengan kecepatan berbeda.

Lebih lanjut, kita dapat dan harus mendefinisikan kontrol akses ke kelas kita, konstruktor, field, dan metodenya. Kita dapat melakukannya dengan menggunakan pengubah akses, seperti yang akan kita lihat di bagian selanjutnya.

4. Pengubah Akses

Dalam contoh sebelumnya, kami menghilangkan pengubah akses untuk menyederhanakan kode. Dengan melakukan itu, kami sebenarnya menggunakan pengubah paket-pribadi default. Pengubah itu memungkinkan akses ke kelas dari kelas lain dalam paket yang sama.

Biasanya, kami akan menggunakan pengubah publik untuk konstruktor guna mengizinkan akses dari semua objek lain:

public Car(String type, String model, String color) { // ... } 

Setiap bidang dan metode di kelas kita juga harus mendefinisikan kontrol akses oleh pengubah tertentu. Kelas biasanya memiliki masyarakat pengubah, tetapi kita cenderung untuk menjaga ladang kami pribadi .

Bidang memegang status objek kami, oleh karena itu kami ingin mengontrol akses ke status itu. Beberapa di antaranya dapat kami jadikan pribadi , dan lainnya bersifat publik . Kami mencapai ini dengan metode khusus yang disebut getter dan setter.

Mari kita lihat kelas kita dengan kontrol akses yang ditentukan sepenuhnya:

public class Car { private String type; // ... public Car(String type, String model, String color) { // ... } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public int getSpeed() { return speed; } // ... } 

Kelas kami ditandai publik , yang berarti kami dapat menggunakannya dalam paket apa pun. Juga, konstruktornya adalah publik , yang berarti kita dapat membuat objek dari kelas ini di dalam objek lain.

Bidang kami ditandai pribadi , yang berarti mereka tidak dapat diakses dari objek kami secara langsung , tetapi kami menyediakan akses ke sana melalui pengambil dan penyetel.

Bidang tipe dan model tidak memiliki pengambil dan penyetel, karena mereka menyimpan data internal objek kita. Kita dapat mendefinisikannya hanya melalui konstruktor selama inisialisasi.

Selanjutnya warna bisa diakses dan diubah, sedangkan kecepatan hanya bisa diakses, tapi tidak bisa diubah. Kami menerapkan penyesuaian kecepatan melalui metode publik khusus peningkatanSpeed ​​() dan penurunanSpeed ​​() .

Dengan kata lain, kami menggunakan kontrol akses untuk merangkum keadaan objek.

5. Kesimpulan

Dalam artikel ini, kami membahas dua elemen dasar bahasa Java, kelas, dan objek, dan menunjukkan bagaimana dan mengapa mereka digunakan. Kami juga memperkenalkan dasar-dasar kontrol akses dan mendemonstrasikan penggunaannya.

Untuk mempelajari konsep lain dari bahasa Java, kami sarankan membaca tentang pewarisan, kata kunci super, dan kelas abstrak sebagai langkah berikutnya.

Kode sumber lengkap untuk contoh tersedia di GitHub.