Cara Bertukar Objek Java dan Fungsinya
// Program java
// mendemonstrasikan
// pertukaran dua objek
// anggota.
// sebuah car dengan class
// number car.
class Car
{
int no;
Car(int no)
{ this.no = no; }
}
// Sebuah class menggunakan
// objek car
class Main
{
/* tukar c1 dan c2 */
public static void swap(Car c1, Car c2)
{
int temp = c1.no;
c1.no = c2.no;
c2.no = temp;
}
/* Driver method */
public static void main(String[] args)
{
Car c1 = new Car(1);
Car c2 = new Car(2);
swap(c1, c2); /*tukar nilai*/
System.out.println("c1.no = "
+ c1.no);
System.out.println("c2.no = "
+ c2.no);
}
}
c2.no = 1
Solusi sebelumnya dapat dijalankan jika hanya terdapat satu anggota "no" pada class Car. Namun, bagaimana jika tidak diketahui nilai anggota dari Car atau list anggota nilainya terlalu besar. Hal ini adalah situasi umum dimana class menggunakan beberapa class lain dan tidak dapat mengakses anggota class. Berikut solusi yang dapat digunakan.
// Program java
// mendemonstrasikan
// pertukaran sederhana,
// dimana objek referensi
// tidak berfungsi.
// constructor car dengan
// angka dan nama.
class Car
{
int model, no;
/* Constructor */
Car(int model, int no){
this.model = model;
this.no = no;}
// method utility untuk
// mencetak nilai car.
void print() {
System.out.println("no = "
+no
+", model = "
+ model);}
}
// sebuah class yang
// menggunakan Car.
class Main
{
// swap() tidak dapat menukar
// nilai c1 dan c2.
public static void swap(Car c1, Car c2)
{
Car temp = c1;
c1 = c2;
c2 = temp;
}
/* Driver method */
public static void main(String[] args)
{
Car c1 = new Car(101, 1);
Car c2 = new Car(202, 2);
swap(c1, c2);
c1.print();
c2.print();
}
}
no = 2, model = 202
Dari hasil ouput program sebelumnya, nilai objek tidak mengalami pertukaran apapun. Telah dibahas pada materi sebelumnya, bahwa parameter hanya dilewati oleh nilai pada Java. Jadi, ketika c1 dan c2 ditukar (swap()), maka fungsi swap() akan menciptakan duplikasi dari referensi.
Solusi dari permasalahan ini adalah menggunakan wrapper class (class pembungkus). Jika diciptakan wrapper class yang mengandung nilai refernsi dari Car, maka dapat dilakukan pertukaran nilai car dengan cara swapping referensi dari wrapper class.
// Program Java
// mendemonstrasikan
// penggunaan wrapper class
// untuk menukar objek.
/* car dengan model dan no */
class Car
{
int model, no;
/* Constructor */
Car(int model, int no){
this.model = model;
this.no = no;}
// Utility method untuk
// mencetak rincian object.
void print(){
System.out.println("no = "
+no
+", model = "
+ model);}
}
// Wrapper class digunakna
// untuk menukar.
class CarWrapper
{
Car c;
/* Constructor */
CarWrapper(Car c) {this.c = c;}
}
// sebuah class yang
// menggunakan car dan swap
// objek dari car menggunakan
// CarWrapper.
class Main
{
// method ini menukar object
// car dapat wrapper.
/* cw1 dan cw2 */
public static void swap(CarWrapper cw1, CarWrapper cw2)
{
Car temp = cw1.c;
cw1.c = cw2.c;
cw2.c = temp;
}
/* Driver method */
public static void main(String[] args)
{
Car c1 = new Car(101, 1);
Car c2 = new Car(202, 2);
CarWrapper cw1 = new CarWrapper(c1);
CarWrapper cw2 = new CarWrapper(c2);
swap(cw1, cw2);
cw1.c.print();
cw2.c.print();
}
}
no = 1, model = 101
Penggunaan wrapper class dapat bekerja sebagai solusi bahkan jika user class tidak memiliki akses terhadap anggota dari class dimana object-nya akan ditukar.
- Penjelasan Singkat tentang Konsep Asosiasi, Komposisi, dan Agregasi pada Java [klik]
- 2 Penjelasan Utama Access dan Non Access Modifier pada Java [klik]
- 4 Tipe Utama Acces Modifier pada Java [klik]
- 6 Konsep Referensi 'this' pada Java [klik]
- 6 Contoh Program Method Overloading pada Java [klik]
- 5 Contoh Output Program Java Overriding [klik]
- 10 Aturan Utama Penggunaan Overriding pada Java [klik]
Apa yang dimaksud dengan class dan object pada bahasa pemrograman Java?
BalasHapusHal pertama yang harus diketahui dari Java adalah Java merupakan bahasa pemrograman berorientasi object, dimana program Java terbuat dari object-object dan class.
HapusObject dalam dunia nyata adalah segala sesuatu yang memiliki keadaan dan perilaku. Contoh, kipas angin, dimana kipas angin tersebut memiliki status berupa warna, sayap, merek, dan lain sebagainya. Dengan perilaku dari kipas angin adalah baling-baling atau kipasnya berputar. Bahkan dalam bentuk perangkat lunak. object-nya tetap mirip dengan object pada dunia nyata. Object menyimpan status dalam suatu bidang, yaitu variabel dalam bahasa pemrograman dan perilaku dijelaskan dengan suatu method yang disebut dengan fungsi.
HapusObject selalu diciptakan untuk sebuah class. Class adalah sesuatu yang dapat diperlakukan sebagai template yang menampung bidang dan method yang berkaitan dengan sekelompok object serupa. Contoh, sebuah class dapat dimana sebagai "hewan" yang terdiri dari beberapa bidang berupa: ras, anggota badan hewan, warna, dengan method: makan, berlari, tidur, dan lain sebagainya. Jadi, class hanyalah sebuah template untuk mendeskripsikan sekelompok object yang serupa.
HapusObjek dari suatu class dapat berkomunikasi melalui method. Inilah dasar komunikasi pada bahasa pemrograman Java.
Hapus