Jumat, Maret 22, 2019

Class dan Objek Bahasa Pemrograman Java

Class dan Objek adalah konsep dasar dari pemrograman berorientasi objek yang berputar terhadap entitas kehidupan nyata.

Class
Sebuah class adalah cetak biru definisi atau prototype dari objek yang diciptakan. Class merepresentasikan sekumpulan properti atau method yang umum untuk semua objek dari satu tipe. Secara umum, deklarasi class terdiri dari komponen-komponen berikut.

satu, Modifier: sebuah class dapat berupa public atau akses default.
dua, Nama class: nama harus dimulai dengan inisialisasi huruf.
tiga, Superclass (jika ada): Nama dari class parent atau superclass didahului oleh keyword extends. Sebuah class hanya memiliki satu extend class.
empat, Interfaces (jika ada): Tanda koma memisahkan daftar dari interface yang diimplementasikan oleh class dan diawali dengan keyword implements. Sebuah class dapat implement lebih dari satu interface.
lima, Body: body class terdapat diantara tanda "{" dan tanda "}".

Constructor digunakan untuk inisialisasi objek baru. Fields adalah variabel yang menyediakan state dari class dan juga objeknya. Method digunakan untuk mengimplementasikan sifat dari class dan juga objeknya.

Ada banyak jenis class yang dipergunakan pada aplikasi real time seperti nested class, anonymous class, lambda expresstion, dan lain sebagainya.

Objek
Objek adalah unit dasar dari pemrograman berorientasi objek yang merepresentasikan entitas dari dunia nyata. Pada umumnya sebuah program Java dapat menciptakan banyak objek, yang berinteraksi satu sama lain melalui pemanggilan method. Di dalam sebuah objek terdiri dari:

satu, State: direpresentasikan dari atribut pada objek. State juga merupakan refleksi dari properti objek.
dua, Behavior: direpresentasikan dari atirbut pada objek. Behavior juga merepleksikan tanggungjawab dari sebuah objek dengan objek lainnya.
tiga, Identity (identitas): identitas memberikan nama unik pada sebuah objek dan memungkinkan sebuah objek berinteraksi dengan objek lainnya.

Contoh objek: dog (diperlihatkan pada gambar 1)

objek terdiri dari state, behavior, dan identity pada Java
Gambar 1 contoh objek
sumber : geeksforgeeks.org

Objek yang diciptakan sesuai dengan yang ditemukan pada dunia nyata. Contohnya, sebuah program grafis terdiri dari beberapa objek seperti lingkaran, persegi, dan lain sebagainya. Atau contoh lain seperti sistem belanja online yang objeknya terdiri dari shopping chart, costumer, dan produk.

Pendeklarasian Objek atau Inisiasi sebuah class
Ketika objek dari sebuah class diciptakan, maka class tersebut sedang diinisiasi. Semua instance class akan berbagi atribut dan behavior dari sebuah class. Namun nilai dari atributnya adalah unik untuk setiap objek yang diinisiasi. Sebuah class bisa memiliki beberapa instance seperti diperlihatkan pada gambar 2.

instance class Java mewarisi atribut dan behavior dari parent class atau superclass
Gambar 1 instance class
sumber : geeksforgeek.org

Setelah objek dideklarasikan maka compiler akan menggunakan nama untuk merujuk ke data yang tipenya sesuai. Di dalam objek juga terdapat variabel, dimana pendeklarasian variabel dengan tipe data primitif membutuhkan sejumlah alokasi memori pada komputer. Jadi untuk referensi variabel, literasi namanya harus benar-benar konkrit atau jelas. Juga, tidak bisa diciptakan sebuah objek dari class abstract ataupun dari interface.

Contoh objek:
Dog tuffy;

Jika dideklarasikan bentuk variabel seperti contoh sebelumnya, maka nilai dari variabel akan bernilai null sampai sebuah objek benar-benar diciptakan dan ditetapkan pada variabel tersebut. Sederhananya, pendeklarasian referensi variabel tidak sama seperti menciptakan sebuah objek.

Inisialisasi objek
Sebuah class operator instance baru diciptakan melalui alokasi memori untuk nilai objek baru dan dikembalikan lagi nilainya kepada memori alokasi. Operator baru juga memanggil class constructor seperti contoh program berikut ini.

Output:
Hi my name is tuffy.
My breed,age and color are papillon,5,white

Penjelasan:
Class pada contoh program sebelumnya mengandung constructor tunggal. Constructor bisa dikenali karena pendeklarasiannya menggunakan nama yang sama dengan class serta tidak memberikan nilai return. Compiler Java membedakan constructor berdasarkan number (angka) dan tipe dari argumen yang disimpan. Constructor pada class Dog memiliki empat buah argumen. Statement "tuffy", "papillon", "5", dan "white" adalah nilai dari argumen tersebut:

Dog tuffy = new Dog("tuffy","papillon",5, "white");

Hasil dari eksekusi statement diperlihatkan pada gambar 3.

statement dan atribut dalam class pada bahasa pemrograman Java
Gambar 1 statement dan atribut class
Sumber : geeksforgeeks.org

Catatan: Semua class setidaknya harus memiliki satu constructor. Jika class tidak memiliki constructor apapun secara eksplisit, maka compiler secara otomatis akan menyediakan no-argument constructor, atau biasa disebut dengan default constructor. Default constructor memanggil class parent no-argument constructor yang didalamnya hanya berisi satu statement super(); atau class objek constructor jika class tidak memiliki parent. Objek class adalah parent dari semua class baik secara langsung atapun tidak langsung.

Cara menciptakan objek dari sebuah class
Ada empat cara untuk menciptakan objek pada Java. Pada dasarnya hanya terdapat satu cara untuk menciptakan objek yaitu menggunakan new keyword, dan sisanya menggunakan keyword yang baru secara internal.

satu, Menggunakan keyword new: ini adalah cara yang paling sering dilakukan dan sekaligus cara yang umum digunakan untuk menciptakan sebuah objek pada java. contoh:

/* menciptakan objek dari class test */
Test t = new Test();

dua, Menggunakan method Class.forName(String classname): ada beberapa class yang telah ditentukan dalam java.lang package beserta nama class-nya. Method forName(String classname) mengembalikan nilai objek class yang terhubung dengan class yang telah diberikan string name. Pemberian nama harus sepenuhnya memenuhi persyaratan untuk sebuah class. Dengan memanggil method new Instance() pada objek class maka akan mengembalikan nilai instance dari class dengan nama string yang telah diberikan.

/* menciptakan objek dari public class Test */
/* pertimbangan bahwa class Test ditampilkan dalam com.p1 package */
Test obj = (Test)Class.forName("com.p1.Test").newInstance();

tiga, Menggunakan method clone(): method clone() disajikan pada class objek. method clone() menciptakan dan mengembalikan sebuah duplikat dari objek.

/* menciptakan objek dari class Test */
Test t1 = new Test();

/* menciptakan duplikat dari objek t1 */
Test t2 = (Test)t1.clone();

empat, Deserialisasi: deserialisasi adalah teknik pembacaan sebuah objek dari file state yang disimpan.

FileInputStream file = new FileInputStream(filename);
ObjectInputStream in = new ObjectInputStream(file);
Object obj = in.readObject(); 

Menciptakan multiple objek dari satu tipe objek saja
satu, Pada kenyataannya, sebuah program terkadang membutuhkan berbagai objek class berbeda dari satu method saja. Menciptakan beberapa referensi untuk menyimpan class berbeda bukan hal yang bijak dan karena itu dibutuhkan variabel referensi static yang dapat digunakan kapanpun dibutuhkan. Dengan demikian, penggunaan memori pun menjadi berkurang. Objek yang tidak direferensikan lagi akan dihilangkan oleh Garbage Collector Java. Contoh:

Test test = new Test();
test = new Test();

dua, Sistem pewarisan: digunakan variabel referensi dari parent class untuk disimpan pada sub-class objek. Pada kasus ini, variabel referensi dapat ditukar menjadi objek sub-class yang berbeda dengan menggunakan nama variabel referensi yang sama. Contoh:

class Animal {}

class Dog extends Animal {}
class Cat extends Animal {}

public class Test
{
/* menggunakan objek Dog */
Animal obj = new Dog();

/* menggunakan objek Cat */
obj = new Cat();
}   

Anonymous Objek
Anonymous objek adalah objek instance tetapi tidak disimpan dalam variabel referensi. Anonymous objek digunakan untuk pemanggilan method awal dan akan dihancurkan setelah method selesai dipanggil. Objek anonymous secara luas digunakan pada libraries berbeda. Contohnya, pada AWT libraries, objek anonymous digunakan untuk memperlihatkan beberapa aksi dalam menangkap event (seperti menekan tombol). Contoh berikut memperlihatkan ketika tombol ditekan, secara sederhana objek anonymous akan menciptakan class Eventhandler untuk pemanggilan method handle.

btn.setOnAction(new EventHandler()
{
public void handle(ActionEvent event)
{
        System.out.println("Hello World!");
    }
});





Tidak ada komentar:

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D