Artikel Terbaru

Cara Mudah Menggunakan Atribut OnDradEnd pada Elemen HTML

Atribut event ondragend merupakan salah satu atribut pada html yang akan bekerja ketika user telah selesai melakukan drag pada elemen html. Fitur drag and drop merupakan fitur yang umum pada html5. Setiap elemen pada html dapat dilakukan drag dengan menggunakan atribut draggable pada html5.

3 Contoh Program Parameter Tipe Terikat pada Java

Ada saat dimana ketika programmer ingin membatasi tipe data yang ingin digunakan pada argumen dalam sebuah tipe dari parameter. Misalnya, method yang beroperasi pada angka (number) mungkin hanya ingin dibatasi jumlah penerimaan instance-nya dari angka atau dari subclass-nya saja. Untuk kondisi tersebut, maka fungsi parameter tipe terikat dapat digunakan pada pembuatan program Java, dengan kondisi berikut:

  • 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.

Deklarasi parameter tipe terikat.
  • satu, Daftarkan tipe nama-nama parameter.
  • dua, Beserta extend keyword.
  • tiga, dan batas atasnya (upper bound).

Sintak:
<T extends superClassName>

Catatan: Pada konteks ini, extend digunakan sebagai istilah umum untuk makna "extends" (seperti pada class). Juga, spesifikasi T hanya bisa digantikan oleh superClassName, atau subclass dari superClassName. Dengan demikian, superclass didefinisikan secara inklusif dari batas atas (upper limit).

Berikut contoh program yang mengimplementasikan tipe terikat (extend superclass) dengan cara umum

// 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();

 

 

}

}

Output :
Dalam sub class C
Dalam sub class B
Dalam super class A



Untuk program selanjutnya dibatasi hanya pada tipe A dan sub class-nya

// 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();

 

}

}

Output:
error: type argument String is not within bounds of type-variable T

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 program:

// 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();

 

 

}

}

Output:
Dalam super class A

Komentar

  1. Apa fungsi keyword extends pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Keyword extends pada bahasa pemrograman Java digunakan untuk memperluas class yang merupakan pewarisan dari class lainnya pada program.

      Pada Java, sangat dimungkinkan untuk dilakukan pewarisan atribut dan method dari satu class ke class lainnya.

      Hapus
    2. 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.

      Hapus
  2. Apakah Java mendukung konsep multiple inheritance?

    BalasHapus
    Balasan
    1. Java 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

Posting Komentar

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung. :D

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.

POIN 6, Jika ada pihak ketika yang ingin memasang iklan pada blog ini secara langsung, maka dapat menghubungi pemilik blog melalui kontak 0882 3218 8316.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Perbedaan stdio.h dan stdlib.h pada Bahasa C

Enkapsulasi pada Java

Perbedaan Antara int main() dan int main(void) pada Bahasa C

2 Jenis Utama Kegiatan Penelitian Berdasarkan Waktunya, Crosssectional Salah Satunya