90 likes | 291 Views
Java Generics. Java Generic. Generic di Java artinya kode yang dapat digunakan oleh beberapa objek yang tipenya berlainan Mirip dengan template di C++. Generic Class.
E N D
Java Generic • Generic di Java artinyakode yang dapatdigunakanolehbeberapaobjek yang tipenyaberlainan • Mirip dengan template di C++
Generic Class • PendeklarasianGeneric Class ditandaidengansimbol yang diawalitanda (<) dandiakhiritanda (>), setelahnamaKelas : class Koleksi<T> • Dari kodediatas, berartikitamembuatsimbol generic dengansimbol T, sehingga T dianggaptipe data dalamlingkupkelastersebut. SaatpendeklarasianobjekKoleksi, makakitaharusmenentukantipe T tersebut : Koleksi<Integer> a = new Koleksi<Integer>(); • Kode diatas berarti kita mengganti simbol T dengan tipe data integer. • Tipe data harusdiimplementasikandalamobjek, misalintmenjadi Integer, double menjadi Double, string menjadi String.
public class Koleksi<T> { private T data; public T getData() {return data;} public void setData(T data) {this.data = data;} public static void main(String[] args) { Koleksi<String> a = new Koleksi<String>(); a.setData("String"); Koleksi<Integer> b = new Koleksi<Integer>(); b.setData(1); } }
Generic Method • Generic Programming dalamsebuahMetode, hanyaberlakuuntukmetodetersebut, tidakberlakuuntukmetode yang lain dalamkelas yang sama. • Perhatikan bahwa tipe dataharusdiimplementasikandalamobjek, misalintmenjadi Integer, double menjadi Double.
public class GenericMethodTest { // generic method printArray public static < E > void printArray( E[] inputArray ) {for ( E element : inputArray ) System.out.printf( "%s ", element ); System.out.println(); } public static void main( String args[] ) { // create arrays of Integer, Double and Character Integer[] intArray = { 1, 2, 3, 4, 5 }; Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7 }; Character[] charArray = { 'H', 'E', 'L', 'L', 'O' }; printArray( integerArray ); // pass an Integer array printArray( doubleArray ); // pass a Double array printArray( characterArray ); // pass a Character array } }
Generic dengan Pewarisan • Digunakan untukmembatasi data yang dapatdimasukkandalamgeneric class/method • Contoh : public class Koleksi<T extends Animal> • Artinya hanya object bertipe Animal dan turunannya saja yang dapat dimasukkan ke class generic Koleksi. • Tipe object turunan Animal contohnya Cat, Bird, dll
public class Musisi { public void nyanyi() {System.out.println("Lalala"); } } public class Audisi<T extends Musisi> { private T data; public T getData() { return data; } public void setData(T singer) { this.data = singer; } public void nyanyiEuy() { this.data.nyanyi(); } public static void main(String args[]) { MusisiBerbakataku=new MusisiBerbakat(); Audisi<MusisiBerbakat> aud =new Audisi(); aud.setData(aku); aud.nyanyiEuy(); } } public class MusisiBerbakatextends Musisi { public void dansa() {System.out.println("Li li li"); } }