Sebelum memahami kelas dan objek Java, mari kita perkenalkan secara singkat pemrograman berorientasi objek. Pemrograman adalah perancangan program melalui objek. Objek tersebut mewakili suatu entitas dan entitas tersebut dapat diidentifikasi dengan jelas.
Java sebagai bahasa berorientasi objek. Konsep dasar berikut ini didukung:
Polimorfisme
mewarisi
enkapsulasi
abstrak
baik
obyek
Contoh
metode
Penguraian pesan
Pada bagian ini kita fokus pada konsep objek dan kelas.
Objek : Objek adalah turunan dari kelas dan memiliki status dan perilaku. Misalnya, seekor anjing adalah suatu benda. Statusnya meliputi: warna, nama, dan ras; perilakunya meliputi: mengibaskan ekornya, menggonggong, makan, dan sebagainya.
Kelas : Kelas adalah templat yang menggambarkan perilaku dan status suatu kelas objek.
Sekarang mari kita lihat lebih dekat apa itu suatu benda. Jika Anda melihat dunia nyata di sekitar Anda, Anda akan menemukan banyak benda di sekitar Anda, seperti mobil, anjing, manusia, dll. Semua objek ini mempunyai keadaan dan perilakunya masing-masing.
Ambil contoh seekor anjing. Statusnya meliputi: nama, ras, dan warna kulit, serta perilakunya meliputi: menggonggong, mengibaskan ekornya, dan berlari.
Membandingkan objek nyata dan objek perangkat lunak, keduanya sangat mirip.
Objek perangkat lunak juga memiliki status dan perilaku. Keadaan objek perangkat lunak adalah atributnya, dan perilakunya tercermin melalui metode.
Dalam pengembangan perangkat lunak, metode beroperasi pada perubahan keadaan internal objek, dan panggilan timbal balik antar objek juga dilakukan melalui metode.
Kelas dapat dianggap sebagai templat untuk membuat objek Java.
Mari kita pahami pengertian kelas di Java melalui kelas sederhana berikut ini:
Anjing kelas publik{
berkembang biak string;
ke dalam usia;
warna tali;
batal menggonggong(){
}
batal lapar(){
}
batal tidur(){
}
}
Sebuah kelas dapat berisi variabel dengan tipe berikut:
Variabel lokal : Variabel yang didefinisikan dalam metode, konstruktor, atau blok pernyataan disebut variabel lokal. Deklarasi dan inisialisasi variabel semuanya ada dalam metode. Setelah metode berakhir, variabel akan dimusnahkan secara otomatis.
Variabel anggota : Variabel anggota adalah variabel yang ditentukan di kelas dan di luar badan metode. Variabel tersebut dipakai saat objek dibuat. Variabel anggota dapat diakses dengan metode kelas, konstruktor, dan blok pernyataan khusus kelas.
Variabel kelas : Variabel kelas juga dideklarasikan di dalam kelas, di luar badan metode, namun variabel tersebut harus dideklarasikan sebagai tipe statis.
Sebuah kelas dapat memiliki beberapa metode. Dalam contoh di atas: barking()
, hungry()
dan sleeping()
semuanya merupakan metode dari kelas Anjing.
Setiap kelas memiliki metode konstruktor. Jika tidak ada konstruktor yang didefinisikan secara eksplisit untuk suatu kelas, kompiler Java akan menyediakan konstruktor default untuk kelas tersebut.
Saat membuat objek, setidaknya satu metode konstruktor harus dipanggil. Nama konstruktor harus sama dengan kelasnya. Suatu kelas dapat memiliki beberapa konstruktor.
Berikut adalah contoh konstruktor:
anak anjing kelas publik{
publikAnak Anjing(){
}
Anak Anjing publik(Nama string){
// Konstruktor ini hanya memiliki satu parameter: nama
}
}
Objek dibuat berdasarkan kelas. Di Java, gunakan kata kunci new
untuk membuat objek baru. Membuat objek memerlukan tiga langkah berikut:
Deklarasi : Mendeklarasikan suatu objek, termasuk nama objek dan tipe objek.
Instansiasi : Gunakan kata kunci new
untuk membuat objek.
Inisialisasi : Saat menggunakan new
untuk membuat objek, metode konstruktor dipanggil untuk menginisialisasi objek.
Berikut adalah contoh pembuatan objek:
anak anjing kelas publik{
Anak Anjing publik(Nama string){
//Konstruktor ini hanya memiliki satu parameter: nama
System.out.println("Nama Anak Anjing adalah :" + nama );
}
public static void main(String []args){
//Pernyataan berikut akan membuat objek Puppy Puppy myPuppy = new Puppy( "tommy" );
}
}
Kompilasi dan jalankan program di atas, dan akan dicetak hasil sebagai berikut:
Nama Anak Anjingnya adalah: tommy
Akses variabel anggota dan metode anggota melalui objek yang dibuat sebagai berikut:
/* Membuat instance objek */
ObjectReference = Konstruktor baru();
/* Akses variabel */
ObjectReference.variableName;
/* Mengakses metode di kelas */
Referensi Objek.MethodName();
Contoh berikut menunjukkan cara mengakses variabel instan dan memanggil metode anggota:
anak anjing kelas publik{
int usia anak anjing;
Anak Anjing publik(Nama string){
// Konstruktor ini hanya memiliki satu parameter: nama
System.out.println("Nama yang Lulus adalah :" + nama );
}
public void setAge( int usia ){
anak anjingUmur = umur;
}
publik int getUmur( ){
System.out.println("Umur anak anjing adalah :" + Usia anak anjing );
kembalikan usia anak anjing;
}
public static void main(String []args){
/* Membuat objek */
Anak Anjing myPuppy = Anak Anjing baru( "tommy" );
/* Menetapkan usia melalui metode */
myPuppy.setAge(2);
/* Panggil metode lain untuk mengetahui usia */
anak anjingku.getAge();
/*Anda juga dapat mengakses variabel anggota sebagai berikut */
System.out.println("Nilai Variabel :" + myPuppy.puppyAge );
}
}
Mengkompilasi dan menjalankan program di atas menghasilkan hasil sebagai berikut:
Nama yang Lulus adalah: tommy
Umur anak anjing adalah :2
Nilai Variabel:2
Di bagian terakhir bagian ini, kita akan mempelajari aturan deklarasi untuk file sumber. Berikan perhatian khusus pada aturan ini ketika mendefinisikan beberapa kelas dalam file sumber dan ketika ada pernyataan import
dan pernyataan package
.
Hanya ada satu kelas public
dalam file sumber
File sumber dapat memiliki beberapa kelas non- public
Nama file sumber harus konsisten dengan nama kelas dari kelas public
. Misal: nama kelas public
pada file sumber adalah Employee
, maka file sumber tersebut harus diberi nama Employee.java
.
Jika suatu kelas didefinisikan dalam sebuah paket, pernyataan package
harus berada di baris pertama file sumber.
Jika file sumber berisi pernyataan import
, maka file tersebut harus ditempatkan di antara pernyataan package
dan definisi kelas. Jika tidak ada pernyataan package
, pernyataan import
harus berada di urutan pertama dalam file sumber.
Pernyataan import
dan pernyataan package
valid untuk semua kelas yang ditentukan dalam file sumber. Dalam file sumber yang sama, deklarasi paket yang berbeda tidak dapat diberikan ke kelas yang berbeda.
Kelas memiliki beberapa tingkat akses, dan kelas juga dibagi menjadi beberapa jenis: kelas abstrak, kelas final
, dll. Ini akan diperkenalkan di bab kontrol akses.
Selain tipe-tipe yang disebutkan di atas, Java juga memiliki beberapa kelas khusus, seperti kelas dalam dan kelas anonim.
Paket terutama digunakan untuk mengklasifikasikan kelas dan antarmuka. Saat mengembangkan program Java, Anda mungkin menulis ratusan atau ribuan kelas, sehingga perlu dilakukan klasifikasi kelas dan antarmuka.
Di Java, jika nama lengkap yang memenuhi syarat diberikan, termasuk nama paket dan nama kelas, compiler Java dapat dengan mudah menemukan kode sumber atau kelasnya. Pernyataan Import
digunakan untuk menyediakan jalur yang masuk akal sehingga kompiler dapat menemukan kelas tertentu.
Misalnya, baris perintah berikut akan menginstruksikan kompiler untuk memuat semua kelas di jalur java_installation/java/io
import java.io.*;
Dalam contoh ini, kita membuat dua kelas: Employee dan EmployeeTest.
Pertama buka editor teks dan tempel kode berikut ke dalamnya. Perhatikan bahwa file tersebut disimpan sebagai Employee.java.
Kelas Karyawan memiliki empat variabel anggota: nama, umur, jabatan dan gaji. Kelas secara eksplisit mendeklarasikan metode konstruktor dengan hanya satu parameter.
import java.io.*;
Karyawan kelas publik{
nama string;
ke dalam usia;
Penunjukan string;
gaji ganda;
// Pembuat kelas Karyawan publik Karyawan (Nama string){
ini.nama = nama;
}
//Tetapkan nilai age public void empAge(int empAge){
usia = usia kerja;
}
/*Tetapkan nilai penunjukan*/
public void empDesignation(String empDesig){
penunjukan = empDesig;
}
/*Tetapkan nilai gaji*/
public void empSalary(double empSalary){
gaji = gaji kosong;
}
/* Mencetak informasi */
kekosongan publik printEmployee(){
System.out.println("Nama:"+ nama );
System.out.println("Umur :" + umur );
System.out.println("Penunjukan:" + penunjukan );
System.out.println("Gaji :"+gaji);
}
}
Eksekusi program dimulai dari metode main
. Untuk menjalankan program ini, metode main
harus disertakan dan objek instance harus dibuat.
Kelas EmployeeTest diberikan di bawah ini, yang membuat instance dua instance kelas Employee dan memanggil metode untuk menetapkan nilai variabel.
Simpan kode berikut di file EmployeeTest.java.
import java.io.*;
Tes Karyawan kelas publik{
public static void main(String args[]){
/* Membuat dua objek menggunakan konstruktor */
Karyawan empOne = Karyawan baru("James Smith");
Karyawan empTwo = Karyawan baru("Mary Anne");
//Panggil metode anggota dari dua objek ini empOne.empAge(26);
empOne.empDesignation("Insinyur Perangkat Lunak Senior");
empOne.empSalary(1000);
empOne.printEmployee();
empTwo.empAge(21);
empTwo.empDesignation("Insinyur Perangkat Lunak");
empTwo.empGaji(500);
empTwo.printEmployee();
}
}
Kompilasi kedua file ini dan jalankan kelas EmployeeTest. Anda dapat melihat hasil berikut:
C:>javacEmployee.java
C :> vi EmployeeTest.java
C:>javacEmployeeTest.java
C :>javaEmployeeTest
Nama:James Smith
Usia: 26
Penunjukan: Insinyur Perangkat Lunak Senior
Gaji:1000,0
Nama: Mary Anne
Usia: 21
Penunjukan: Insinyur Perangkat Lunak
Gaji: 500,0