I InnerClass, Abstract Class

Inner Class juga sering disebut Nested Class yaitu sebuah Class yang dideklarasikan didalam Class lain, Inner Class dapat mengakses semua attribute dan method Outer Class-nya meskipun “private”. Namun, Outer Class tidak dapat mengakses Inner Class secara langsung, tetapi harus menciptakan object Inner Classnya dulu.

Abstract Class mempunyai method dan attribute yang sama dengan class lainnya, dikatakan abstract jika salah satu methodnya dideklarasikan abstract. Method abstract adalah method yang tidak memiliki implementasi.

Sebuah Class dapat dideklarasikan sebagai abstract class meskipun tidak memiki method abstract.

Misalnya deklarasi mothod abstract :

Abstract public void print();

Variable dengan type abstract class masih bisa dibuat, namun harus refer ke subclass dari abstract class yang tidak abstract.

Abstract Class tidak dapat dibuatkan object menggunakan keyword “new”. Kalaupun terpaksa menciptakan abstract class tanpa subclass maka harus mengimplementasikan method abstract nya secara langsung saat deklarasi.

Interface merupakan sebuah class yang hanya mempunyai deklarasi  merhod tanpa adanya implementasi, attributeyang dimiliki bersifat final. Dalam pendeklarasian interface ada beberapa aturan, diantaranya :

–          Modifier yang digunakan hanya “public” atau tanpa modifier. Jika tidak menggunakan modifier, maka hanya akan dapat diakses dalam package yang sama.

–          Varibel yang dideklarasikan otomatis static final, sehingga dalam pendeklarasian harus diberi nilai.

–          Semua method adalah abstract, tanpa perlu menuliskan keyword abstract pada pendeklarasian method dalam interface.

–          Semua method yang diimplementasikan harus public. Dan jika tidak mengimplementasikan semua method pada interface, maka class tersebut harus dideklarasikan sebagai Abstract Class

contoh Inner :

C#

</pre>
<b>using </b>System;

&nbsp;

<b>namespace </b>inner

{

class operasi

{

<b>public </b><b>int </b>harga;

<b>public </b><b>int </b>jumlah;

<b>private </b>class proses

{

<b>private </b><b>int </b>harga;

<b>private </b><b>int </b>jumlah;

<b>private </b><b>int </b>total;

<b>private </b><b>int </b>bayar;

<b>private </b><b>int </b>sisa;

<b>public </b><b>proses</b>(<b>int </b>a, <b>int </b>b)

{

<b>this</b>.harga  = a;

<b>this</b>.jumlah = b;

}

<b>public </b>void <b>totalnya</b>()

{

total = harga * jumlah;

Console.<b>WriteLine</b>("total = {0}",total);

}

<b>public </b>void <b>sisanya</b>()

{

Console.<b>WriteLine</b>("===================== ");

Console.<b>Write</b>("Pembayaran = ");

bayar= Convert.<b>ToInt32</b>(Console.<b>ReadLine</b>());

sisa = bayar - total;

Console.<b>Write</b>("kembalian = {0}",sisa);

}

}

<b>public </b>void <b>hasil</b>()

{

proses a = <b>new </b><b>proses</b>(harga,jumlah);

a.<b>totalnya</b>();

a.<b>sisanya</b>();

}

}

class Program

{

<b>public </b>static void <b>Main</b>(string[] args)

{

Console.<b>WriteLine</b>("Inner Class\n");

operasi q = <b>new </b><b>operasi </b>();

Console.<b>Write</b>("jumlah barang : ");

q.jumlah= Convert.<b>ToInt32</b>(Console.<b>ReadLine</b>());

Console.<b>Write</b>("Harga : ");

q.harga=Convert.<b>ToInt32</b>(Console.<b>ReadLine</b>());

q.<b>hasil</b>();

&nbsp;

Console.<b>ReadKey</b>(<b>true</b>);

}

}

}
<pre>

c#

Java

</pre>
<b><i>/*</i></b>

<b><i> * To change this template, choose Tools | Templates</i></b>

<b><i> * and open the template in the editor.</i></b>

<b><i> */</i></b>

<b><i>package inner.jav;</i></b>

<b><i> </i></b>

<b><i>import java.util.Scanner;</i></b>

<b><i> </i></b>

<b><i>/**</i></b>

<b><i> *</i></b>

<b><i> * @author Windows 7</i></b>

<b><i> */</i></b>

<b><i>class itung_tung</i></b>

<b><i>{</i></b>

<b><i>public int hargabarang;</i></b>

<b><i>public int jumlah;</i></b>

<b><i> </i></b>

<b><i>private class prosesHitung</i></b>

<b><i>{</i></b>

<b><i>private int hargabarang;</i></b>

<b><i>private int jumlah;</i></b>

<b><i>private int total;</i></b>

<b><i>private int pembayaran;</i></b>

<b><i>private int sisa;</i></b>

<b><i>public prosesHitung(int harga,int qty)</i></b>

<b><i>{</i></b>

<b><i>    this.hargabarang = harga;</i></b>

<b><i>    this.jumlah = qty;</i></b>

<b><i>}</i></b>

<b><i>public void totalbayar()</i></b>

<b><i>{</i></b>

<b><i>    total = hargabarang * jumlah;</i></b>

<b><i>System.out.println("Total = "+total);</i></b>

<b><i>}</i></b>

<b><i>public void sisabayar()</i></b>

<b><i>{</i></b>

<b><i>Scanner input = new Scanner(System.in);</i></b>

<b><i>System.out.println("=================================== ");</i></b>

<b><i>System.out.println("Bayar : ");</i></b>

<b><i>pembayaran=input.nextInt();</i></b>

<b><i>sisa = pembayaran - total;</i></b>

<b><i>System.out.println("Kembalian= "+sisa);</i></b>

<b><i>}</i></b>

<b><i>}</i></b>

<b><i>public void hasilHitung()</i></b>

<b><i>{</i></b>

<b><i>    prosesHitung hitung = new prosesHitung(hargabarang,jumlah);</i></b>

<b><i>    hitung.totalbayar();</i></b>

<b><i>    hitung.sisabayar();</i></b>

<b><i>}</i></b>

<b><i>}</i></b>

<b><i>public class InnerJav {</i></b>

<b><i> </i></b>

<b><i>public static void main(String[] args) {</i></b>

<b><i>       Scanner input = new Scanner(System.in);</i></b>

<b><i>System.out.println("Inner Class");</i></b>

<b><i>System.out.println();</i></b>

<b><i>itung_tung q = new itung_tung ();</i></b>

<b><i>System.out.print("Jumlah : ");</i></b>

<b><i>q.hargabarang= input.nextInt();</i></b>

<b><i>System.out.print("Harga : ");</i></b>

<b><i>q.jumlah= input.nextInt();</i></b>

<b><i>q.hasilHitung();  </i></b>

<b><i>    }</i></b>

<b><i>}</i></b>
<pre>

inner java

c++

</pre>
#include <iostream>

&nbsp;

using namespace std;

class operasi

{

public :

int harga;

int jumlah;

private :

class proses

{

private :

int harga;

int jumlah;

int total;

int bayar;

int sisa;

public :

proses(int a,int b)

{

harga = a;

jumlah = b;

}

public :

void totalnya()

{

total= harga* jumlah;

cout<<endl<<"Total = "<<total<<endl;

}

public :

void sisanya()

{

cout<<endl<<"========================= "<< endl;;

cout<<endl<<"Bayar : "<< endl;;

cin>>bayar;

sisa = bayar - total;

cout<<endl<<"kembalian = "<<sisa<< endl;;

}

};

public :

void hasil()

{

proses q= proses(harga , jumlah);

q.totalnya();

q.sisanya();

}

};

int main()

{

cout<<endl<<"Inner Class"<<endl;

cout<<endl;

operasi as;

&nbsp;

cout<<endl<<"Jumlah Barang : "<< endl;;

cin>>as.jumlah;

cout<<endl<<"Harga : "<< endl;;

cin>>as.harga;

as.hasil();

return 0;

}
<pre>

c++

Contoh Abstrak :

JAVA

</pre>
/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package abstrak;

import java.util.Scanner;

/**

*

* @author Windows 7

*/

class Data_karyawan

{

public String nama;

public String alamat;

public String golongan;

&nbsp;

public void Post_datakaryawan()

{

Scanner input = new Scanner(System.in);

System.out.print("Input Nama    : ");

nama = input.next();

System.out.print("Input Alamat  : ");

alamat = input.next();

System.out.print("golongan      : ");

golongan = input.next();

}

public void Get_datakaryawan()

{

System.out.println("Nama anda               : "+nama);

System.out.println("Alamat                  : "+alamat);

System.out.println("Golongan                : "+golongan);

System.out.println("=====================================");

}

}

&nbsp;

class Data_karyawan1 extends Data_karyawan

{

int gapok = 50000;

int absen;

int gaji = 0;

Data_karyawan kar = new Data_karyawan();

public void Post_datakaryawan1()

{

Scanner input = new Scanner(System.in);

kar.Post_datakaryawan();

System.out.print("Jumlah absen          : ");

absen = input.nextInt();

gaji = absen*gapok;

}

public void Get_datakaryawan1()

{

System.out.println("=================================");

kar.Get_datakaryawan();

System.out.println("Jumlah Absen        : "+absen);

System.out.println("Total Gaji          : "+gaji);

}

}

class Data_karyawan2 extends Data_karyawan1

{

}

public class Abstrak
{

public static void main(String[] args)
{

Data_karyawan1 q_1 = new Data_karyawan1();

Data_karyawan2 q_2= new Data_karyawan2();

System.out.println("Karyawan 1");

System.out.println();

q_1.Post_datakaryawan1();

System.out.println("Karyawan 2");

q_2.Post_datakaryawan1();

System.out.println();

System.out.println("Data Karyawan 1");

q_1.Get_datakaryawan1();

System.out.println();

System.out.println("Data Karyawan 2");

q_2.Get_datakaryawan1();

}

}
<pre>

abstrak

C++

</pre>
#include <iostream>

&nbsp;

using namespace std;

class karyawan

{

private :

string nama, alamat, golongan;

public :

virtual void Post_karyawan()

{

cout<<"Input Nama                       : ";

cin>>nama ;

cout<<"Input Alamat                     : ";

cin>>alamat;

cout<<" Golongan                   : ";

cin>>golongan;

&nbsp;

}

public :

virtual void Get_karyawan()

{

cout<<"Nama                         : "<<nama<<endl;

cout<<"Alamat                       : "<<alamat<<endl;

cout<<"Golongan                     : "<<golongan<<endl;

}

};

class karyawan_satu : public karyawan

{

private :

int gapok;

int absen;

int gaji;

karyawan q;

public :

virtual void Post_karyawan_satu()

{

q.Post_karyawan();

cout<<"Total Absensi Bulan Ini : ";

cin>>absen;

cout<<"Gaji Perhari            : ";

cin>>gapok;

gaji = gapok * absen;

}

public :

virtual void Get_karyawan_satu()

{

q.Get_karyawan();

cout<<"Absen                   : "<<absen<<endl;

cout<<"Gaji                    : "<<gaji<<endl;

}

};

class karyawan_dua : public karyawan_satu

{

};

int main()

{

karyawan_satu qa_1;

karyawan_dua qa_2;

cout<<"Inputan 1";

cout<<endl;

qa_1.Post_karyawan_satu();

cout<<"Inputan 2";

cout<<endl;

qa_2.Post_karyawan_satu();

cout<<endl;

cout<<"Data Mahasiswa 1";

cout<<endl;

qa_1.Get_karyawan_satu();

cout<<endl;

cout<<"Data Mahasiswa 2";

cout<<endl;

qa_2.Get_karyawan_satu();

}
<pre>

c++

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s