Menggunakan Parameter Tipe Terikat Java dan Fungsinya
- Ingin menggunakan seluruh class sebagai parameter dengan kondisi bahwa method umum Java dapat diciptakan. Serta, sebagaimana halnya constructor yang berfungsi sebagai spesial method, maka constructor juga bisa digunakan sebagai tipe parameter umum.
- Ingin membatasi jenis objek yang dapat digunakan dalam tipe parameter. Misalnya dalam metode yang membandingkan dua objek dan ingin memastikan bahwa objek yang diterima adalah yang sebanding.
- Inovasi dari fungsi method tersebut sama dengan method tak terikat kecuali bahwa jika programmer ingin menggunakan class apapun yang tidak sebanding, maka hasilnya adalah pesan error pada program.
- Daftarkan tipe nama-nama parameter.
- Beserta extend keyword.
- dan batas atasnya (upper bound).
Sintak:
<T extends superClassName>
// Variabel tipe terikat pada
// bahasa pemrograman Java
// class ini hanya menerima
// tipe parameter dari class
// extend class A atau class A
// itu sendiri.
// Melewatkan tipe parameter
// yang lain yang bukan extend
// class A akan mengakibatkan
// error pada saat kompilasi
// program
class Bound<t extends A>
{
private T objRef;
public Bound(T obj){
this.objRef = obj;
}
public void doRunTest(){
this.objRef.displayClass();
}
}
class A
{
public void displayClass()
{
System.out.println("Dalam"
+" super class A");
}
}
class B extends A
{
public void displayClass()
{
System.out.println("Dalam sub"
+" class B");
}
}
class C extends A
{
public void displayClass()
{
System.out.println("Dalam sub"
+" class C");
}
}
public class BoundedClass
{
public static void main(String a[])
{
// Menciptakan objek dari sub
// class c dan melewatkannya
// menuju parameter tipe
// terikat
Bound<c> bec = new Bound<c>(new C());
bec.doRunTest();
// Menciptakan objek dari sub
// class B dan melewatkannya
// menuju parameter tipe
// terikat
Bound<b> beb = new Bound<b>(new B());
beb.doRunTest();
// Sama seperti melewatkan
// super class A
Bound<a> bea = new Bound<a>(new A());
bea.doRunTest();
}
}
Dalam sub class B
Dalam super class A
// Variabel tipe terikat pada
// bahasa pemrograman Java
// class ini hanya menerima
// tipe parameter dari class
// extend class A atau class A
// itu sendiri.
// Melewatkan tipe parameter
// yang lain yang bukan extend
// class A akan mengakibatkan
// error pada saat kompilasi
// program
class Bound<t extends A>
{
private T objRef;
public Bound(T obj){
this.objRef = obj;
}
public void doRunTest(){
this.objRef.displayClass();
}
}
class A
{
public void displayClass()
{
System.out.println("Dalam"
+" super class A");
}
}
class B extends A
{
public void displayClass()
{
System.out.println("Dalam sub"
+" class B");
}
}
class C extends A
{
public void displayClass()
{
System.out.println("Dalam sub"
+" class C");
}
}
public class BoundedClass
{
public static void main(String a[])
{
// Menciptakan objek dari sub
// class c dan melewatkannya
// menuju parameter tipe
// terikat
Bound<c> bec = new Bound<c>(new C());
bec.doRunTest();
// Menciptakan objek dari sub
// class B dan melewatkannya
// menuju parameter tipe
// terikat
Bound<b> beb = new Bound<b>(new B());
beb.doRunTest();
// Sama seperti melewatkan
// super class A
Bound<a> bea = new Bound<a>(new A());
bea.doRunTest();
// String bukanlah extends
// dari class A
Bound<string> bes = new Bound<string>(new String());
bea.doRunTest();
}
}
Variabel terikat tipe berganda
Parameter tipe terikat dapat digunakan bersama dengan method, class, dan interface.
Java juga mendukung variabel tipe terikat berganda. Pada kasus ini A dapat menjadi sebagai interface atau class. Jika A adalah class, maka B dan C harus menjadi interface-nya. Program tidak bisa memiliki lebih dari satu class pada variabel terikat tipe berganda.
Sintak:
<T extends superClassName & Interface>
Contoh:
// Variabel tipe terikat pada
// bahasa pemrograman Java
class Bound<t extends A & B>
{
private T objRef;
public Bound(T obj){
this.objRef = obj;
}
public void doRunTest(){
this.objRef.displayClass();
}
}
interface B
{
public void displayClass();
}
class A implements B
{
public void displayClass()
{
System.out.println("Dalam"
+" super class A");
}
}
public class BoundedClass
{
public static void main(String a[])
{
// menciptakan objek dari sub
// class A dan melewatkan nya
// menuju parameter tipe
// terikat
Bound<a> bea = new Bound<a>(new A());
bea.doRunTest();
}
}
- Keamanan Tipe (Type Safety): Penggunaan parameter tipe terikat memungkinkan untuk memberikan batasan tipe data yang dapat diterima oleh suatu kelas atau metode. Hal ini meningkatkan keamanan tipe (type safety) karena kesalahan tipe dapat terdeteksi pada tahap kompilasi, bukan pada saat runtime.
- Reusable Code: Parameter tipe terikat membuat kode lebih dapat digunakan kembali. Pengembang dapat membuat kelas atau metode yang bekerja dengan berbagai jenis tipe data yang memenuhi batasan tertentu.
- Kode yang Lebih Abstrak: Penggunaan parameter tipe terikat meningkatkan abstraksi dalam kode. Pengembang dapat menentukan fungsionalitas yang bergantung pada sifat umum dari tipe data tanpa harus mengetahui jenis spesifiknya.
- Meningkatkan Keterbacaan Kode: Penggunaan parameter tipe terikat dapat meningkatkan keterbacaan kode karena menyampaikan informasi tambahan tentang jenis data yang diharapkan. Ini membantu pembaca kode untuk memahami lebih baik maksud dan batasan dari suatu kelas atau metode.
- Pencegahan Penggunaan Tipe Data yang Tidak Sesuai: Parameter tipe terikat membantu mencegah penggunaan tipe data yang tidak sesuai dengan kebutuhan suatu kelas atau metode. Dengan menentukan batasan tipe, maka dapat dipastikan bahwa hanya tipe data yang sesuai yang dapat digunakan.
- Membuat Perintah Keyboard Java Menggunakan Switch Statement
- Membuat Perintah Keyboard Java Menggunakan String Switch Case
- Deklarasi Forward Java dan Fungsinya
- Konversi Tipe Data Java dan Fungsinya
- Konversi Tipe Data Primitif Java dan Fungsi Lanjutan
- Membuat Komentar Java dan Fungsinya
- Menuju Baris Tertentu pada Java Menggunakan Keyword Goto
5 komentar untuk "Menggunakan Parameter Tipe Terikat 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 fungsi keyword extends pada bahasa pemrograman Java?
BalasHapusKeyword extends pada bahasa pemrograman Java digunakan untuk memperluas class yang merupakan pewarisan dari class lainnya pada program.
HapusPada Java, sangat dimungkinkan untuk dilakukan pewarisan atribut dan method dari satu class ke class lainnya.
Pada Java, keyword extends digunakan untuk menunjukkan bahwa new class diturunkan dari inheritance class sebelumnya. Jadi, pada dasarnya, fungsi dari keyword extends adalah untuk memperluas fungsionalitas class pada program Java.
HapusApakah Java mendukung konsep multiple inheritance?
BalasHapusJava tidak mendukung penggunaan konsep pewarisan ganda atau multiple inheritance, inilah mengapa programmer tidak bisa melakukan perluasan dari dua class yang berbeda secara bersamaan pada sebuah program. Sebaliknya, dapat digunakan satu buah class untuk dilakukan perluasan, dan juga dapat menggunakan interface untuk menyertakan fungsionalitas tambahan pada program Java.
Hapus