Class dan Objek merupakan paradigma dasar dari OOP (Object Oriented Programming)
Class : suatu frame yang merupakan definisi yang memuat data dan metod pengolah data
Objek : Bentuk konkrit dari class yang dengannya data dan metod dapat direalisasikan
Contoh class : Dog
Contoh data : warna, umur , harga
definisi data menggunakan sintak : tipe_data nama_var;
atau : tipe_data nama_var=nilai_data;
Contoh metod : bark(), sleep()
definisi metod :
[public/static] return_value nama_metod(parameter){ … }
{ isi metod}
Definisi class Dog
class Dog
{private String nama=“Noname”;
private int umur =0;
public Dog(String nm, int um){nama=nm; umur=um;}
public void bark()
{System.out.println(“Gug..gug..!”);}
public void sayHello()
{System.out.println(“Hello my name is “+nama+” I’m a “+umur+” years old”);
}
}
Membuat instant (objek)
Membuat objek pada dasarnya sama dengan mendefinisikan data dan mengisi nilai datanya.
Contoh :
Mendifinisikan data :
String nama;
Mendefinisikan data sekaligus mengisi data :
String nama=“Heli”;
Mendefinisikan objek : (nama objek adalah myDog, merupakan objek dari class Dog)
Dog myDog;
Mendefinisikan objek sekalligus menginisialisasi nilai objek.
Dog myDog = new Dog(“Heli”, 3);
Memanggil metod dari objek
Berikut ini class yang memuat program utama dan memanggil metod bark() dan seyHello().
Rumus memanggil metod adalah :
nama_class.nama_metod()
public class DogRun
{public static void main (String[ ] arg)
{ Dog myDog= new Dog(“Heli”,3);
Dog yourDog = new Dog(“Pleki”, 1);
myDog.bark();
myDog.sayHello();
System.out.println(“Kenalkan anjingmu:”);
yourDog.sayHello();
} // akhir main
} //akhir definisi class
2. Modifier public , void, static, private
Modifier public :
Pada definisi class, merupakan class yang memuat metod main(), dan nama file disimpan dengan nama class public
Pada definisi metod, bermakna bahwa metod tersebut dapat diases dari luar class yang bersangkutan
Pada daefinisi data, bermakna data tersebut dapat diases dari luar class
Modifier void pada metod: berarti Metod tersebut tidak ada return valuenya
Modifier static pada metod : berarti metod tersebut dapat dipanggil hanya dari dalam class yang sama
Modifier private pada data : berarti data hanya dapat diases dari class yang sama
Modifier protected paad metod : dapat diases dari class turunannya
Construktur
Construktor adalah jenis metod yang akan otomatis dipanggil jika suatu objek dibuat
Construktor didefinisikan secara public dan namanya sama dengan nama classnya
Construktor dapat didefinisikan lebih dari satu definisi
Contoh : untuk Dog ditambah definisi construktor tanpa parameter, menjadi :
public Dog( ) { }
public Dog(String nm, int um){nama=nm; umur=um;}
Misalkan dalam class DogRun didefinisikan objek yourDog
Dog yourDog=new Dog();
Maka jika dalam class DogRun dipanggil :
yourDog.seyHello();
Outputnya : (nilai nama dan umur digunakan nilai default)
Hello my name is Noname I’am a 0 years old
3. Data primitive dan operator
Data primitive : Data-data dasar java, yang hampir sama dengan C++
Data Integer :
int 4 byte kisaran nilai :-2.147.486.648 s/d 2.147.486.647
short 2 byte kisaran nilai :-32.768 s/d 32.767
long 8 byte kisaran nilai :-9.223.372.036.854.775.808L s/d
9.223.372.036.854.775.807L
byte 1 byte kisaran nilai :-128 s/d 127
Data floating point :
float 4 byte kisaran nilai :+3.40282347E+38F (7 digit ignifikan)
double 8 byte kisaran nilai :+1.79769313486231570E+308 (15
digit signifikan)
karakter dan boolean
char 1 byte 1 karakter
boolean bernilai true, false
Operator
Operator aritmatik :
+, - , * dan / untuk : penambahan, pengurangan, perkalian dan pembagian
+= , yakni : x+=4 ekivalen dengan operasi : x=x+4
-= ; *= dan /= memiliki ekivalensi yang sama dengan -=
++ yaitu : n++ ekivalen dengan n=n+1 (increment by one)
-- yaitu : n-- ekivalen dengan n=n-1 (decrement by one)
% untuk MODULO, yaitu : 5 % 3 sama dengan 2
Operator relational dan logika
< , > , <= dan >= adalah : lebih kecil, lebih besar, lebih kecil atau sama dan lebih besa atau sama
== untuk SAMA DENGAN
!= untuk TIDAK SAMA DENGAN
&& untuk operator AND
|| untuk operator OR
Contoh program dengan data dan operator :
class OperasiDATA
{ public static void main (String args[])
{int a; float b; double c; String d;
a=(int)1/3;b=(float)1/3 ; c=(double)1/3 ;
d="JON SHOLEH";
System.out.println("a = " +a);
System.out.println("b = " +b);
System.out.println("c = " +c);
System.out.println("d = " +d);
System.out.println("d.length() = " +d.length());
System.out.println("d.substring(0,3) = " +d.substring(0,3));
}
}
Output program :
a = 0
b = 0.333333
c = 0.333333
d = JON SHOLEH
d.length() = 10
d.substring(0,3) =JON
Encaptulation
Encaptulation: konsep dalam OOP yang bertujuan membungkus (mang-kapsul) data dan metode dalam suatu class sehingga data dan metode yang tersembunyi dalam class tidak dapat diases dari luar class.
Encaptulation direalisir dengan modifier : private
Data yang dapat diases dari luar diberi modifier dengan public
Contoh :
class Dataku
{ public int N_umum=0;
private int N_khusus=0;
public void Cetak1(){System.out.println("N_umum="+N_umum);}
public void setN_Khusus(int n){N_khusus=n;}
public void Cetak2() {System.out.println("N_khusus="+N_khusus);}
}
4. String sebagai class
String merupakan nama khusus class java yang masih mempertahankan kompatibilitas dengan tipe data primitif yang lama sebagaimana int, long, float dan lain-lain
Definisi string dapat digunakan cara luwes, seperti deklarasi data primitif atau seperti deklarasi poembuatan objekl string.
Contoh :
Deklarasi seperti data primitive
int n=10; String s=“JOKO”;
Deklarasi seperti membuat objek :
String s= new String(“JOKO”);
Contructor dan Beberapa fungsi String
String memiliki beberapa konstruktor :
String(String s ) : argumen string s
String(byte [ ] b ) : argumen berupa array of byte b
String(char [ ] c ) : argumen berupa array of char
length() : mengetahui panjang string
substring(n,m) : mengambil substring dari string sebanyak m mulai dari posisi n
equals(s) : untuk mengetahui apakah suatu string s nilainya sama dengan string tersebut
charAt(n) : mengambil satu data char dari string pada posisi n