Anda di halaman 1dari 6

#abstract class

jenis abstrak Dari Wikipedia, ensiklopedia bebas Artikel ini membahas jenis tanpa anggota langsung, lihat juga tipeAbstrak data. Dalam bahasa pemrograman, jenis abstrak adalah jenis dalamsistem tipe nominatif yang dinyatakan oleh kata abstrakprogrammer.The berarti hide.Abstract tipe data hanya memberikaninformasi dan bukan implementasi. Ini mungkin atau mungkin tidak termasuk metode abstrak atau properti [1] yang berisi anggota yang juga anggota bersama beberapa subtipe dinyatakan. Dalambahasa pemrograman banyak berorientasi obyek, tipe abstrak yang dikenal sebagai kelas dasar abstrak, interface, sifat, mixin, rasa,atau peran. Perhatikan bahwa nama-nama ini mengacu padakonstruksi bahasa yang berbeda yang (atau mungkin) digunakan untuk mengimplementasikan jenis abstrak. Dua karakteristik utama dari kelas abstrak adalah bahwa penggunaan mereka adalah masalah desain sesuai denganpraktek pemrograman berorientasi objek terbaik, dan dengan sifatmereka yang belum selesai.
Operasi Jenis Abstrak Operasi dari jenis abstrak diklasifikasikan sebagai berikut: Konstruktor membuat objek baru dari jenis. Konstruktor mungkinmengambil objek sebagai argumen, tapi bukan objek dari tipe yang sedang dibangun. contoh java.util.GregorianCalendar impor; com.imperim.splitter.model.Student impor; public class Runner { public void static main (String [] args) { int tahun = 1992; int bulan = 9; int hari = 13; int StudentNumber = 111003066; String firstName = "Ashitosh"; String NamaBelakang = "Alwani"; GregorianCalendar dateOfBirth = new GregorianCalendar(tahun, bulan, hari); Mahasiswa mahasiswa = baru (StudentNumber,FirstName, LastName, jenis kelamin, dateOfBirth); / / ini berlaku Mahasiswa s2 = new Mahasiswa (mahasiswa); / * ini tidak sah karena konstruktor tidak dapat mengambil objek dari jenis yangsedang dibangun * / student.printDetails (); } }

#interface
Pengertian interface adalah himpunan operasi-operasi yang menentukan perilaku sebuah objek, biasanya digunakan apabila kita ingin menentukan apa saja yang harus dilakukan oleh satu class tetapi tidak menentukan bagaimana cara untuk melakukannya.
<?php interface Iemployee { public function set_nama($nama); public function job_desc(); } class karyawan implements Iemployee { public function set_nama($nama) { } public { } } class Bos implements Iemployee { public function set_nama($nama) { } public { } } $a = new Bos(); $a->bukan_job_desc(); function bukan_job_desc() function job_desc()

#polimorfisme
Polimorfisme adalah kemampuan untuk memperoleh bentuk. Dua objek atau lebih dikatakan polimorfis, bila objekobjek itu mempunyai antar muka-antarmuka identik namun mempunyai perilaku-perilaku berbeda. Bentuk ini memungkinkan kita menganggap sekelompok objek dengan tipe-tipe berbeda seperti dimiliki oleh suatu tipe yang sama. Polimorfisme merupakan fitur yang terjadi karena interaksi setiap konsep pewarisan dan dynamic binding. Contohnya pintu dan jendela memiliki perilaku yang sama yaitu dapat dibuka dan ditutup, namun untuk menutup jendela dilakukan misalnya dari atas ke bawah (vetikal), sedangkan pintu dari depan ke belakang (horizontal).

#overloading method
Method overloading digunakan untuk membuat beberapa fungsi (method) dengan nama yangSAMA dan mengerjakan tugas yang MIRIP. Tujuannya, agar programmer tidak kesulitan dalam mengingat sebuah fungsi yang tugasnya mirip. Misalnya untuk membuat fungsi perkalian. Ada perkalian yang membutuhkan dua argumen dan ada perkalian yang membutuhkan tiga argumen (tugasnya mirip, yaitu sama-sama mengalikan argumen, hanya jumlah argumen yang berbeda). Kalau dibuat fungsi dengan nama yang berbeda, kemungkinan programmer akan repot. Contoh, untuk fungsi perkalian dengan dua argumen, namanya adalahkali1(bil1, bil2). Sedangkan untuk perkalian dengan tiga argumen namanya adalah kali2(bil1, bil2, bil3). Repot kan? Gimana kalo ada sepuluh perkalian? Bandingkan bila namanyakali(bil1, bil2) dan kali(bil1, bil2, bil3). Kita cuma perlu mengingat jumlah argumen dari fungsi kali. Contoh #1 (jumlah argumen berbeda): // method kali dengan dua argumen (bil1 dan bil2) int kali(int bil1, int bil2) { return bil1*bil2 } // method kali dengan tiga argumen (bil1, bil2 dan bil3) int kali(int bil1, int bil2, int bil3) { return bil1*bil2*bil3; } Method kali pada contoh di atas VALID karena mempunyai jumlah argumen yang berbeda. Contoh #2 (mempunyai tipe data argumen yang berbeda): // method tampilkanNilai mempunyai argumen bertipe char void tampilkanNilai(char nilai) { cout << Nilai (dalam huruf): << nilai; } // method tampilkanNilai mempunyai argumen bertipe int void tampilkanNilai(int nilai) { cout << Nilai (dalam angka): << nilai; } Contoh method tampilkanNilai diatas VALID karena mempunyai tipe data argumen yang berbeda walaupun memiliki jumlah argumen yang sama. Contoh #3 (urutan argumen berbeda): // method kali dengan tipe data bil1 adalah int // dan bil2 adalah double double kali(int bil1, double bil2) { return bil1*bil2; } // method kali dengan tipe data bil1 adalah double // dan bil2 adalah int double kali(double bil1, int bil2) { return bil1*bil2; } Method kali di atas VALID karena urutan argumen berbeda. Pada method kali yang pertama bil1 bertipe data int kemudian diikuti oleh bil2 dengan tipe data double. Sedangkan pada method kali yang kedua, bil1 bertipe data double diikuti oleh bil2 yang bertipe data int. PERLU DIINGAT!!! Seringnya programmer melakukan kesalahan ketika membuat method overloading adalah dengan

membuat daftar parameter yang sama dengan return type (nilai balik) yang berbeda. Hal ini menghasilkan SYNTAX ERROR. Contoh yang salah: // return type: int int hitungUmur(int umur) { return umur + 2; } // return type: void void hitungUmur(int umur) { cout<<umur siswa setelah lulus kuliah= <<umur+2; }

#package
Package adalah cara untuk mengelompokan class dan interface yang ada ke dalam kelompoknya (name space) masing masing sehingga lebih mudah diatur dan memungkinkan penggunaan nama yang sama. Untuk mendefinisikan suatu package digunakan keyword package. Pendefinisian nama package harus terletak di bagian paling atas dari source program kita. Sintaks pendefinisian nama package adalah sebagai berikut: packace control; public interface Control { public void pindahChannel(int channel); public void perbesarVolume(int intensitas); public void perkecilVolume(int intensitas); }

package tv; import control.Control; public class TVPolitron implements Control{ String[] channel = {"RCTI","SCTV","INDOSIAR","ANTV","TV7"}; public void pindahChannel(int channel) { System.out.println("Pindah channel pada TV Politron ke "+ this.channel[channel]); } public void perbesarVolume(int intensitas) { System.out.println("Perbesar volume pada TV Politron sebanyak "+ intensitas); }

public void perkecilVolume(int intensitas) { System.out.println("Perkecil volume pada TV Politron sebanyak "+ intensitas); } }

#overridding
Overloading Merupakan Suatu Function yang memiliki parameter , dan function tersebut dapat memiliki nama function yang sama dengan yang lainnya dengan syarat jumlah parameter mesti berbeda atau bisa kita bilang Situasi di mana beberapa rutin dalam sebuah program dapat mempunyai nama sama tetapi berbeda jenis parameter dan/utau jenis return value. lebih Jelasnya Overloading secara singkat :

Nama Method Boleh Sama , Tapi Jumlah Parameter Mesti berbeda Nilai Yang Di Return Harus memiliki Tipe yang sama Sample Overloading pada function TaxCalc pada C#.Net : public static double TaxCalc(double pamt1, double prate1, double pamt2, double prate2) { double taxamt; Console.WriteLine(Using method with 4 arguments); taxamt = (pamt1 * prate1) + (pamt2 * prate2); return taxamt; } // *** TaxCalc *** // This method only takes two arguments: an amount and a rate public static double TaxCalc(double pamt1, double prate1) { double taxamt; Console.WriteLine(Using method with 2 arguments); taxamt = pamt1 * prate1; return taxamt; } // *** TaxCalc *** // This method only takes one argument: an amount public static double TaxCalc(double pamt) { double taxrate = 0.15; double taxamt = 0; Console.WriteLine(Using method with 1 argument); taxamt = pamt * taxrate; return taxamt; } // *** TaxCalc ***

// This method only takes one argument as well but it differs // from the above in the argument type. public static double TaxCalc(string whichtable) { double taxrate = 0; Console.WriteLine(Calling the method with 1 string argument); if (whichtable == TaxTable1) taxrate = 0.15; return taxrate; }

Anda mungkin juga menyukai