Class dan Object Java dan Fungsinya
Konsep dasar dari OOP adalah:
- Object
- Class
- Enkapsulasi
- Inheritance
- Polymorphism
- Abstraction
Prasyarat dari Class dan Object pada Pemrograman Berorientasi Object
Class: sebuah class adalah sebuah cetak biru definisi pengguna atau prototipe dari object yang diciptakan. Class yang telah diciptakan tersebut merepresentasikan seperangkat dari properti atau method yang umum dari semua object dari satu tipe data. Class merupakan bagian syarat dari OOP karena:- Class menyediakan template untuk menciptakan object yang dapat mengikat code menjadi data.
- Class adalah definisi dari method dan data.
- Class mendukung inheritance dari Pemrograman Berorientasi Objek dan karenanya dapat melakukan pemeliharaan hirarki class.
- Class membantu merawat akses spesifikasi dari anggota variabel.
Sebuah object terdiri dari:
- State: direpresentasikan oleh atribut dari object. State juga memperlihatkan properti dari object.
- Behavior: direpresentasikan oleh method dari object. Behavior memperlihatkan respon dari object terhadap object lainnya.
- Identity: memberikan nama unik dari object. Identity juga memberikan ijin akses sebuah object untuk berinteraksi dengan object lainnya.
Object dipersyaratkan dalam OOP karena object dapat diciptakan untuk memanggil fungsi non-static yang tidak dipresentasikan di dalam Main Method tetapi di presentasikan di dalam Class dan juga menyediakan nama ke ruang yang akan digunakan untuk penyimpanan data.
Contoh: Penambahan dua angka, yang mempersyarakatkan ruang penyimpanan untuk angka secara terpisah dari yang lainnya, sehingga dapat diambil dan dilakukan operasi yang sesuai. Karenanya menciptakan dua object berbeda untuk menyimpan dua angka merupakan solusi ideal untuk skenario operasi tersebut seperti diperlihatkan pada gambar 1.
Pendeklarasian Object (Juga Disebut Sebagai Instansiasi Sebuah Class)
Ketika sebuah object diciptakan dari sebuah class, maka class tersebut sedang dilakukan instansiasi. Semua instance berbagi atribut dan behavior dari sebuah class. Tetapi nilai dari atribut yaitu state adalah unik untuk masing-masing object. Sebuah class tunggal mungkin memiliki instance dengan angka berapapun. Seperti diperlihatkan pada contoh gambar 2.Dog tuffy;
Jika dideklarasikan referensi variabel (tuffy) seperti contoh sebelumnya, maka nilainya akan tidak terdefinisi (null) sampai sebuah object benar-benar diciptakan dan diberikan operasi kepadanya. Secara sederhana, pendeklarasikan referensi variabel tidaklah menciptakan sebuah object.
Inisialisasi Object Menggunakan 'new'
Operator new instansiasi dari sebuah class oleh alokasi memori untuk sebuah object baru dan mengembalikan sebuah nilai referensi ke memori. Operator new juga memanggil class constructor.// Program java
// mengilustrasikan konsep
// dari class dan object
/* Deklarasi class */
public class Dog {
/* Instance Variabel */
String name;
String breed;
int age;
String color;
// Deklarasi konstructor dari
// class
public Dog(String name, String breed, int age, String color)
{
this.name = name;
this.breed = breed;
this.age = age;
this.color = color;
}
/* method 1 */
public String getName()
{return name;}
/* method 2 */
public String getBreed()
{return breed;}
/* method 3 */
public int getAge()
{return age;}
/* method 4 */
public String getColor()
{return color;}
@Override
public String toString()
{
return ("Hi, nama saya "
+this.getName()
+".\nTanggal lahir, usia, dan"
+" dan warna kesukaan: "
+this.getBreed()
+", "
+this.getAge()
+", "
+ this.getColor());
}
public static void main(String[] args)
{
Dog tuffy = new Dog("tuffy", "sekayu", 19, "putih");
System.out.println(tuffy.toString());
}
}
Tanggal lahir, usia, dan warna kesukaan: sekayu, 19, putih
Baca Juga:
Dog tuffy = new Dog("tuffy", "papillon", 5, "white");
Hasil dari eksekusi statement diperlihatkan pada ilustrasi gambar 3 berikut ini:
Beberapa cara untuk menciptakan object:
satu, Penggunaan keyword new: ini merupakan cara paling sederhana untuk menciptakan object. Dengan menggunakan method tersebut, maka constructor yang sesuai akan dipanggil.
// Program Java
// mengilustrasikan penciptaan
// dan akses object
// menggunakan keyword new
/* base class */
class Dog {
// class Dog memiliki dua
// field
String dogName;
int dogAge;
// class Dog memiliki satu
// constructor
Dog(String name, int age)
{
this.dogName = name;
this.dogAge = age;
}
}
/* driver class */
public class Test {
public static void main(String[] args)
{
/* Menciptakan object dari class Dog */
Dog ob1 = new Dog("Bravo", 4);
Dog ob2 = new Dog("Oliver", 5);
// Mengakses object data
// melalui referensi
System.out.println(ob1.dogName
+", "
+ob1.dogAge);
System.out.println(ob2.dogName
+", "
+ob2.dogAge);
}
}
Oliver, 5
dua, Menggunakan Class.newInstance() method: digunakan untuk menciptakan class dinamis. Method ini juga bisa digunakan untuk memanggil constuctor no-argument apapun. Method ini juga mengembalikan class Class object ketika newinstance() method dipanggil, yang akan mengembalikan object dari class yang akan dilewatkan sebagai argument perintah baris.
Beberapa pengecualisan alasan:
- ClassNotFoundException akan muncul, jika class yang akan dilewatkan tidak ada atau tidak tersedia.
- InstantiationException akan muncul, jika class yang akan dilewatkan tidak mengandung constructor default. Method internewInstance() secara internal dipanggil constructor default dari class tertentu.
- IllegalAccessException akan muncul, jika class driver tidak memiliki akses ke definisi dari class definisi secara spesifik.
Sintak: ClassName ReferenceVariable = (ClassName) Class.forName("PackageName.ClassName").newInstance();
// Program Java
// mendemonstrasikan
// penciptaan object
// menggunakan newInstance()
// method
/* Base class */
class Example {
void message()
{System.out.println("Hello"
+" Budi !!");}
}
/* Driver class */
class Test {
public static void main(String args[])
{
try {
Class c = Class.forName("Contoh");
Example s = (Example)c.newInstance();
s.message();
}
catch (Exception e) { System.out.println(e); }
}
}
tiga, Menggunakan newInstance() method untuk class Constructor: method ini merupakan sebuah cara refleksi untuk menciptakan object. Dengan menggunakan method tersebut maka dapat dipanggil parameterisasi dan private constructor. Method tersebut akan membungkus dan melemparkan exception dengan InvocationTargetException. Method tersebut digunakan oleh framework berbeda seperti Spring, Hibernate, Struts, dan lain sebagainya. Constructor.newInstance() method lebih sering digunakan daripada method Class.newInstance().
Sintak:
- Constructor constructor = ClassName.class.getConstructor();
- ClassName ReferenceVariable = constructor.newInstance();
Contoh:
// Program Java
// mendemosntrasikan
// penciptaan object
// menggunakan
// Constructor.newInstance()
// method
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class ConstructorExample {
// dilemparkan exception
// berbeda
public static void main(String[] args)
throws NoSuchMethodException,
SecurityException,
InstantiationException,
IllegalAccessException,
IllegalArgumentException,
InvocationTargetException
{
Constructor constructor = ExampleClass.class.getConstructor(String.class);
ExampleClass exampleObject = (ExampleClass)constructor
.newInstance("MakanNasiPadang");
System.out.println(exampleObject.getemp_name());
}
}
class ExampleClass {
// Pendeklarasian variabel
// private
private String emp_name;
public ExampleClass(String emp_name)
{this.emp_name = emp_name;}
// mendapatkan method untuk
// emp_name guna mengakses
// variabel private empt_name
public String getemp_name()
{return emp_name;}
// setting method untuk
// emp_name guna mengakses
// variabel private emp_name
public void setemp_name(String emp_name)
{this.emp_name = emp_name;}
}
empat, Menggunakan clone() method: method tersebut digunakan untuk membuat duplikat dari object. Penggunakan method clone merupakan cara termudah dan paling efisien untuk menduplikasi sebuah object. Dalam kode, java.lang.Cloneable, interface harus diimplementasikan oleh object class mana yang akan dibuat duplikasinya. Jika duplikasi interface tidak diimplementasikan, maka method clone() akan mengeluarkan CloneNotSupportedException.
Sintak: ClassName ReferenceVariable = (ClassName) ReferenceVariable.clone();
// Program Java
// mendemonstrasikan
// penciptaan object
// menggunakan method clone()
// class employee yang
// object-nya akan diduplikasi
class Employee implements Cloneable {
int emp_id;
String emp_name;
/* default constructor */
Employee(String emp_name, int emp_id)
{this.emp_id = emp_id;
this.emp_name = emp_name;}
public Object clone() throws CloneNotSupportedException
{return super.clone();}
}
/* driver class */
public class Test {
public static void main(String args[])
{
try {
Employee ob1 = new Employee("El", 201);
// menciptakan referensi baru
// variabel ob2 yang menuju ke
// alamat yang sama pada ob1
Employee ob2 = (Employee)ob1.clone();
System.out.println(ob1.emp_id
+", "
+ob1.emp_name);
System.out.println(ob2.emp_id
+", "
+ob2.emp_name);
}
catch (CloneNotSupportedException c)
{System.out.println("Excepti"
+"on: "
+c);}
}
}
201, El
lima, Menggunakan deserialisasi: untuk melakukan deserialisasi objek, pertama implementasikan sebuah interface serializable dalam class. Tidak ada constructor yang digunakan untuk menciptakan object pada method ini.
Sintak:
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(FileName));
- ClassName ReferenceVariable = (ClassName) in.readObject();
Contoh:
// Kode program Java
// mendemonstrasikan
//penciptaan object oleh
// deserialisasi
import java.io.*;
/* Base class */
class Example implements java.io.Serializable {
public int emp_id;
public String emp_name;
/* Default constructor */
public Example(int emp_id, String emp_name)
{this.emp_id = emp_id;
this.emp_name = emp_name;}
}
/* Driver class */
class Test {
public static void main(String[] args)
{
Example object = new Example(1, "MakanNasiPadang");
String filename = "file1.ser";
/* Serialisasi */
try {
/* menyimpan object dalam sebuah file */
FileOutputStream file1 = new FileOutputStream(filename);
ObjectOutputStream out = new ObjectOutputStream(file1);
// method untuk serialisasi
// object
out.writeObject(object);
out.close();
file1.close();
System.out.println("Object"
+" telah diserialisasi");
}
catch (IOException ex){
System.out.println("IOExcept"
+"ion ditemukan");}
Example object1 = null;
/* deserialisasi */
try {
// membaca object dari sebuah
// file
FileInputStream file1 = new FileInputStream(filename);
ObjectInputStream in = new ObjectInputStream(file1);
// method untuk deserialisasi
// object
object1 = (Example)in.readObject();
in.close();
file1.close();
System.out.println("Object"
+" telah di deserialisasi");
System.out.println("ID Pega"
+"wai = " + object1.emp_id);
System.out.println("Nama"
+" Pegawai = "
+ object1.emp_name);
}
catch (IOException ex) {
System.out.println("IOExcep"
+"tion ditemukan");
}
catch (ClassNotFoundException ex) {
System.out.println("ClassNot"
+"FoundException ditemukan");
}
}
}
- Enkapsulasi Java dan Fungsinya
- Menampilkan Komponen Penting Java Menggunakan Abstraksi
- Pengertian Polimorfisme Java dan Dynamic Method Dispatch
- Pengertian Asosiasi Komposisi dan Agregasi Java
- Cara Access dan Non Access Modifier Java dan Fungsinya
- Acces Modifier Java dan Fungsinya
- Menggunakan THIS Java dan Fungsinya
9 komentar untuk "Class dan Object Java dan Fungsinya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa yang dimaksud dengan instance class pada bahasa pemrograman Java?
BalasHapusClass merupakan blok bangunan dasar dari pemrograman berorientasi objek atau OOP pada bahasa pemrograman Java. Class merupakan template yang mendeskripsikan data dan perilaku yang terkait dengan instance class tersebut. Ketika programmer membuat sebuah class instance, maka programmer tersebut sedang membuat sebuah object yang terlihat dan terasa seperti halnya instance yang lain yang berasal dari class yang sama.
HapusClass pada bahasa pemrograman Java mendeskripsikan object konten yang dimilikina. Class mendeskripsikan agregat bidang data yang disebut dengan instance variabel, dan juga mendefinisikan operasi atau method.
HapusApa yang dimaksud dengan object pada OOP Java?
BalasHapusObject, dalam bahasa pemrograman berorientasi object atau OOP pada bahasa pemrograman Java adalah tipe data abstrak yang dibuat oleh programmer pada kode program. Object dapat mencakup beberapa properti dan method dan bahkan juga berisi object-object lainnya. Pada kebanyakan bahasa pemrograman, tidak hanya Java, object didefinsiikan sebagai sebuah class. Object menyediakan pendekatan terstruktur untuk pengembangan suatu program.
Hapuskeuntungan nggunakan class
BalasHapusKeuntungan utama penggunaan class pada bahasa pemrogramaan berorientasi object adalah kenyamanan dalam penggunaannya dan bagaimana class itu sendiri digunakan untuk melakukan penugasan-penugasan tertentu yang dalam dilakukan secara berulang, tanpa harus disertai deklarasi berulang pula.
Hapusdengan menggunakan class, program jadi lebih gampang dikelompokkan berdasarkan karakter tertentu, dan dapat digunakan untuk fungsi yang lebih spesifik, tanpa perlu melibatkan semua baris program.
Hapussebenarnya tidak bisa dikatakan sebuah keuntungan juga jika bahasa program dapat menggunakan class, karena pada beberapa bahasa pemrograman tertentu (yang memang sudah murni OOP), penggunaan class adalah sesuatu yang sifatnya memang wajib.
Hapus