Rabu, 14 September 2011

Resume Pemograman Berorientasi Objek Pertemuan II

Nim: 10.41010.0259
Nama: Candra kurniawan

Definisi Class

Suatu claas dapat dibuat sebagai kelas yang benar-benar baru atau dapat dibentuk dari kelas yang sudah ada.untuk membuat class menggunakan kata kunci class, diikuti dengan nama itu dan itu tubuh (yang terkandung antara kurung kurawal). Sifat-sifat dan method yang didefinisikan dalam tubuh class.
  • Properti adalah variabel yang didefinisikan dalam class.
  • Method adalah fungsi dibuat dalam class.
Struktur umum dari class adalah:
class ClassName {
var property1;
var property2;
.................
function method1() 
{
// kode fungsi
}
function method2() 
{
// kode fungsi
}
.................
}

Penciptaan obyek dari sebuah class
  • obyek diciptakan dengan perintahnew
  • misal akan diciptakan obyek baru dari class motor dengan nama motorku
  • maka perintah penciptaan obyek 
Motorku dari class Motor:
Motor motorku = new Motor();
class Motor { 
String aktivitas, warna;
Int kecepatan;
void cekKecepatan(){
if(kecepatan==0)
aktivitas="parkir";
}
voidcetakAtribut(){
System.out.println("Aktivitas = "+aktivitas);
System.out.println("Merk = "+merk);
System.out.println("Kecepatan = "+kecepatan); 
}} 

Modifier
Adalah keyword yang digunakan sebagai pelengkap suatu unsur (class/method/variabel) dan berfungsi menjelaskan bagaimana hubungan diantara unsur-unsur tesebut. Modifier pada anatomi kelas, sifatnya optional, digunakan berdasarkan kebutuhan. Modifier menunjukkan sifat-sifat tertentu dari : kelasnya, methodnya, atau attributenya.
Keyword dari Modifier1 sebagai berikut:
  • Public yaitu bahwa kelas tersebut dapat juga diakses oleh kelas yang lain, baik yang masih berada dalam package yang sama maupun berbeda. 
  • Private yaitu bahwa kelas tersebut tidak dapat diakses sama sekali oleh kelas lain, tanpa memandang apakah ia berasal dari package yang sama atau bukan.
  • Protected yaitu membatasi akses kelas yang dilakukan oleh sub kelas turunannya(dari proses pewarisan/inheritance) dan kelas lain yang terletak dalam package yang sama. 
  • Abstract yaitu bahwa kelas tersebut tidak dapat diinstansiasi langsung menjadi objek. Modifier ini hanya dipakai bila kelas tersebut terletak pada hirarki kelas tertinggi, sehingga hanya mungkin diturunkan sebagai sub kelas, bukan diinstansiasi menjadi objek.   
  • Final yaitu bahwa kelas tersebut tidak dapat diturunkan menjadi subkelas (pewarisan/inheritance).
sedangkan Keyword dari Modifier2 sebagai berikut:
  • Extends SuperClass yaitu digunakan dalam prinsip inheritance, yaitu bila kelas tersebut merupakan subkelas dari suatu kelas super (Super Class). 
  • Implements Interfaces yaitu digunakan bila kelas tersebut mengimplementasikan satu atau lebih interface. Bila terdapat lebih dari satu interface digunakan koma diantara interface-inteface tersebut. 
Deklarai Attribute (Variabel Anggota Data)
 Deklarasi diletakkan di dalam classbody (di luar method).
Bentuk umum deklarasi attribute :
[modifier] tipedata namavariabel;
[public] [static] final tipedata NAMA_KONSTANTA = nilai;
Contoh :
public class CircleClass { public static final double PI = 3.14159265358979323846;
public double x, y, r;// dan seterusnya 

Constructor
construktor adalah fungsi khusus di dalam class. Ini harus memiliki nama yang sama dengan class. Method ini selalu "public" bahkan jika atribut ini tidak disebutkan. Konstruktor ini secara otomatis dipanggil ketika sebuah instance dari class masing-masing dibuat. Perbedaan lain dari fungsi lainnya adalah bahwa Konstruktor tidak menggunakan "kembali" instruksi. Syarat suatu function disebut sebagai konstruktor(perancangan).
  • Nama konstruktor harus sama dengan nama class.
  • Tidak menspesifikasikan tipe data yang dikirim, sebab konstruktor dapat berupa function tanpa parameter.
Berikut adalah class mobil.java, yang mencakup method contructor:
public class mobil{
String nama;
int roda;
String warna;
String tipe;
int kursi;

public mobil(){
this.nama="";
this.roda=0;
this.warna="";
this.tipe="";
this.kursi=0;
}
public mobil(String nama, int roda, String warna, String tipe, int kursi){
this.nama=nama;
this.roda=roda;
this.warna=warna;
this.tipe=tipe;
this.kursi=kursi
}
void printDataMobil(){
System.out.println("nama mobil :"+nama);
System.out.println("jumlah roda :"+roda);
System.out.println("warna :"+warna);
System.out.println("tipe :"+tipe);
System.out.println("kursi :"+kursi);
}}.

Kemudian kita buat method untuk mengimplementasikan class tadi,dengan nama methodMobil.java
Dengan Script sebagai berikut:
public class methodMobil{
public static void main(String[]args){
mobil toyota=new mobil();
toyota.nama="avanza";
toyota.roda=4;
toyota.warna="silver";
toyota.tipe="G";
toyota.kursi=8;
toyota.printDataMobil();
}}.

Relasi antar class
class inner.Java membolehkan programmer menyisipkan suatu kelas ke dalam kelas lainnya. Kelas sisipan ini disebut class inner.Class inner berguna untuk mendukung suatu proses yang akan dijalankan oleh kelas luarnya.Beberapa ketentuan class inner:
  • Class inner yang mengandung kelas Inner, bila dikompilasi akan menghasilkan dua file *.class, yaitu Luar.class dan Luar$Inner.class.
  • Class inner boleh tidak diberi nama, yang disebut Anonymous Inner.
  • Class inner dapat diberi modifier akses public, atau protected, atau default, ataupun private. 
  • Untuk mengakses referensi this dari kelas luar digunakan bentuk NamaKelasLuar.this. 
  • Class Luar ikut bertanggung-jawab dalam instansiasi kelas Inner (yang non static). Kalau objek kelas Luar adalah a, dan objek kelas Inner adalah b, maka sintaks yang benar adalah : 
Luar a = new Luar();  
Luar.Inner b = a.new Inner(); 
  • Jika Class Inner bersifat static, maka objek milik kelas Inner dapat dibuat sendiri tanpa melalui kelas Luarnya, (Artinya kelas Inner tidak dapat mengakses attribute ataupun method non static milik kelas Luarnya).
Contoh program berikut adalah aplikasi  sederhana dengan handlernya dari Class Inner :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DemoJButtonInner extends JFrame {
    private JButton btn;
    public DemoJButtonInner {
        super(”Demo JButton Inner Class”);
        Container c = getContentPane();
        c.setLayout(new FlowLayout());
        btn = new JButton(”Button”);
        c.add(btn);
        // membuat event handler
        ButtonHandler handler = new ButtonHandler();
        btn.addActionListener(handler);
        setSize(275, 100);
        show();
    }

    public static void main(String args[]) {
        DemoJButtonInner app = new DemoJButtonInner();
        app.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent we) {
                System.exit(0);
            }
        });
    }

    // kelas Inner untuk Event Handling pada button
    private class ButtonHandler implements ActionListener {
        public void actionPerformed(ActionEvent ae) {
            JOptionPane.showMessageDialog(null,
               ”anda telah menekan”
               +ae.getActionCommand()+”\n”
               +”Handler button ini pakai kelas Inner”);            
        }} 
}


0 komentar:

Posting Komentar

Powered By Blogger