Pemrograman Berorientasi Objek
Apakah Obyek? Semua benda yang ada di dunia nyata dapat dianggap sebagai obyek. Contoh : manusia,rumah, mobil, sepeda, motor, gelas, komputer, meja dll.
Karakteristik Obyek Setiap obyek memiliki atribut /state/ propertis/ variabel/data/instant variabel. Setiap obyek memiliki tingkah laku/ behavior/method Contoh: manusia Memiliki atribut (state) : jenis kelamin, warna kulit, tinggi, berat dll Memiliki tingkah laku (behavior) : berjalan, makan, tidur dll
Apakah Class? Definisi class: merupakan template untuk membuat obyek. Definisi class: merupakan prototipe / blue print yang mendefinisikan variabel – variabel dan method – method secara umum. Obyek merupakan hasil instansiasi dari suatu kelas. Proses pembentukan obyek dari suatu class disebut dengan instantiation. Obyek disebut juga instances.
Attributes Definisi atribut : adalah data yang membedakan antara obyek satu dengan yang lain. Dalam class atribut disebut sebagai variabel
Behavior Behavior / tingkah laku adalah hal – hal yang bisa dilakukan oleh obyek dari suatu class. Behavior dapat digunakan untuk mengubah nilai atribut suatu obyek, menerima informasi dari obyek lain, dan mengirim informasi ke obyek lain untuk melakukan suatu task. Dalam class, behavior disebut juga sebagai methods.
Behavior Methods: adalah serangkaian statements dalam suatu class yang menghandle suatu task tertentu. Cara obyek berkomunikasi dengan obyek lain adalah dengan menggunakan method.
Class dan Object
Syntax Deklarasi class <modifier> class <classname> { [deklarasi_atribut] [deklarasi_konstruktor] [deklarasi_metode] } Class member
Contoh public class Mobil{ }
Komponen Komponen-komponen untuk deklarasi class : Modifier Nama class Body class
Contoh nama class public class Mobil{ } Body class modifier
Penjelasan Nama class Biasanya ditulis dengan awalan huruf kapital. Tidak menggunakan keyword java. 2. Body class Berupa statement-statement yang berada diantara tanda kurung kurawal { dan }. Modifier penjelasan next slide
Nested Class Class didalam class. Outer class : class yang terletak diluar. Inner class : class yang terletak didalam. Nama inner class harus berbeda dengan outer class-nya.
Inner Class Untuk mengimplementasikan detail statement yang seharusnya tidak di share dengan class lain (yang tidak memiliki akses). Hak inner class : mengakses member dari class outer-nya.
Bentuk Nested Class class Buah{ class Jeruk{ ... } class Apel{ ... } }
Bentuk Nested Class class Buah{ class Jeruk{ ... } class Apel{ ... } } Outer class class Buah{ class Jeruk{ ... } class Apel{ ... } } Inner class
Hasil Kompilasi Hasil Kompilasi nested class akan menghasilkan file .class untuk masing-masing class inner maupun outer.
Local Inner Class Yaitu inner class yang dideklarasikan didalam method. Bukan merupakan member dari outer class. Instansiasi hanya bisa dijalankan ketika ada pemanggilan method. Tidak dapat menggunakan access modifier. Hak akses hanya ada di lingkup method.
Bentuk Local Inner Class Outer class class Buah{ method() { class Jeruk{ ... } } Local inner class
Modifier Melakukan control terhadap class member (method, field, maupun class itu sendiri)
Access Modifier Jenis modifier : Public Private Protected No modifier (default)
Modifier : Public Hak akses untuk semua class (baik yang ada di dalam package maupun diluar package).
No modifier (Default) Hak akses hanya untuk class yang ada pada package yang sama.
Modifier : Private Hak akses hanya dimiliki oleh class itu sendiri.
Modifier : Protected Hak akses dimiliki oleh class itu sendiri dan semua class anak yang ada pada package yang sama.
Class dan Objek class mobil{ String warna; int tahunproduksi; } public class coba { public static void main(String[]args) { mobil mobilku= new mobil(); // mengisi variabel instan mobilku.warna="Hitam"; mobilku.tahunproduksi=2006; //menampilkan isi variabel instan System.out.println("Warna : " + mobilku.warna); System.out.println("Tahun Produksi : " + mobilku.tahunproduksi); }
Class dengan Method Menthode untuk mengisi Data, void berarti tidak menghasilkan Nilai kembalian Menthod untuk mengambil nilai variabel instan warna Menthod untuk mengambil nilai variabel instan tahunproduksi
Memanggil method isidata
Kata Kunci This Digunakan untuk menyatakan objek sekarang jika parameter sebuah method sama dengan variabel instannya
Lingkup Variabel class lingkup{ //variabel instan String warna = "Merah"; //metode void infolingkup(){ String warna = "Biru"; System.out.println("warna pada metode : "+ warna); System.out.println("Warna pada kelas : "+this.warna); } public class lingkupvariabel { public static void main(String[] args){ lingkup varx = new lingkup(); varx.infolingkup(); } Variabel akan dicari di blok terdalam, jika tidak ditemukan maka akan dicari di blok yang ada diluarnya dan seterusnya
Penentu akses : public dan private Dalam OOP akses terhadap variabel instan diluar class tidak diperkenankan, gantinya gunakan method Public berarti pengaksesan suatu variabel instan atau metode dapat dilakukan dari luar kelas Private berarti pengaksesan suatu variabel instan atau metode hanya dapat dilakukan di dlm kelas, tidak bisa dari luar kelas.
Kenapa disalahkan
konstruktor Konstruktor adalah methode yang akan dijalankan otomatis saat penciptaan object Konstruktor harus mempunyai nama sama dengan nama classnya Sebuah class dapat mempunyai konstruktor lebih dari 1 (overloading construktor)
Contoh Konstruktor
Menciptakan objek dengan konstruktor tertentu Mobil objMobil1=new Mobil(); Mobil objMobil2=new Mobil("Merah"); Mobil objmobil3=new Mobil(2012); Mobil objMobil4=new Mobil("Merah", 2012);
Tugas Buatlah Class segitiga dengan ketentuan sbb : Variabel instan terdiri dari alas dan tinggi Buat konstruktor untuk mengisi alas dan tinggi Method untuk mengisi alas+tinggi,mengisi alas, mengisi tinggi,mendapatkan alas,mendapatkan tinggi,mendapatkan luas Buat program utama untuk menggunakan Class segitiga