Static Method
Static method adalah method yang tidak membutuhkan /
menggunakan instance variabel sehingga tidak membutuhkan
instance dari class untuk memanggil method tersebut
cth: int x = [Link] (42.2);
int y = [Link] (56.12);
int z = [Link] (-343);
Class math tidak mempunyai instance variabel, sehingga java
tidak mengijinkan untuk membuat instance dari class math
dengan memberi access modifier private pada constructor class
math
Static method dipakai untuk method utility yang dapat
berfungsi secara umum tanpa bergantung pada nilai instance
variabel
Static method vs regular method
Regular method (non static)
Value dari instance variable mempengaruhi behaviour
/ perilaku suatu method
cth: public class Lagu {
String judul;
……
public void play() {
Player player = new Player();
[Link](judul);
}}
Static method vs regular method
Static method
Tidak dapat menggunakan instance variabel,
perilaku/behaviour dari method tidak dipengaruhi oleh
state dari instance variabel
Cth : public static int min (int a, int b) {
// kode untuk mencari nilai terkecil antara 2 bil;
}
sehingga untuk menggunakan static method langsung saja
dipanggil dari nama class dimana method tersebut
dideklarasikan
mis: [Link] (42,36);
Class dengan static method
Biasanya (tapi tidak selalu) suatu class yang terdiri
dari hanya method static dibuat agar tidak dapat
diinstantiate
Suatu class dengan hanya method static biasanya
dicegah agar tidak dapat diinstantiate dengan cara
membuat konstruktornya mempunyai access modifier
private
Static variable
Static variable mempunyai nilai yang sama terhadap semua
instance dari class yang berarti bahwa setiap instance dari
class yang sama saling berbagi satu variabel yang sama
cth: public class Kucing {
private int size;
private static int jmlKucing = 0;
public Kucing() {
jmlKucing++; // jmlKucing akan terus diincrement
setiap kali konstruktor dipanggil
}}
Keyword Final
Final variabel menyatakan nilai variabel tersebut tidak bisa
diubah
cth : Class Contoh {
final int angka=0;
public Contoh () {
angka=2; //error karena angka final;
}
Final Method menyatakan suatu method tidak dapat dioverride
cth : Class Foo {
public final void tes() {
…..
}
Final Class menyatakan class tersebut tidak dapat diextend
Cth : public final class Foo {
….
}
Final variable
Menginisialisasikan final variable ada 2 cara
1. Public class Foo {
public static final int FOO = 20;
}
2. Menggunakan static initializer
public class Foo {
public static final int FOO;
static {
FOO = (Integer) [Link]();
}
Math Method
Class math terdiri dari method static beberapa
diantara yang sering digunakan antara lain
- [Link]()
mengembalikan nilai bertipe double antara 0.0 hingga
(tapi tidak termasuk) 1.0
cth: double r1 = [Link]()
int r2 = (int) ([Link]() *5 );
Math Method
[Link]()
mengembalikan nilai mutlak (overloaded)
cth: int x = [Link](-10); // return 10
double y = [Link] ( -290.55); //return 290.55
[Link]()
membulatkan ke nilai integer terdekat
cth: int x = [Link] (-24.8f) ; return -25
int y = [Link] (24.45) ; return 24
Math Method
[Link]()
mengembalikan nilai terkecil diantara 2 argumen
(overloaded)
cth: int x = [Link] (24 , 240); // return 24
double y = [Link] (24.432 , 5.49) ; //return 5.49
Math. max()
mengembalikan nilai terbesar diantara 2 argumen
(overloaded)
Wrapping
Wrapping memperlakukan tipe primitif sebagai
object
Sebelum java 5.0 , tipe primitif tidak bisa dikirimkan
sebagai argumen ke suatu method yang menerima
objek
cth: int x = 32;
Arraylist list = new Arraylist();
[Link](x); // error sebelum java 5.0 karena
method add pada arraylist hanya menerima argumen
bertipe objek
Wrapping
Setiap tipe primitif mempunyai wrapper class masing-
masing, yaitu
- Boolean
- Character
- Byte
- Short
- Integer
- Long
- Float
- Double
Wrapping / unwrap value
Wrapping value
Int I = 128
Integer iWrap = new Integer (I);
Unwrap value
int x= [Link]();
float f = [Link]();
boolean b = [Link]();
Autoboxing
Fitur pada java 5.0 keatas yang berfungsi melakukan
konversi dari primitif ke objek wrapper secara otomatis
Dengan autoboxing memungkinkan kita menggunakan
objek wrapper atau tipe primitif dimana saja
- pada method argumen
jika method parameter menerima objek wrapper, kita
dapat mengirim reference objek sebagai argumen atau tipe
primitif yang sesuai
cth: void takeNumber (Integer i) { }
method dapat menerima primitif bertipe int ataupun
objek reference
Autoboxing
- pada return value
jika sebuah method mendeklarasikan tipe kembalian
bertipe primitif, kita dapat mengembalikan nilai bertipe
primitif ataupun referece object bertipe tersebut
- pada operasi angka
wrapper objek dapat digunakan sebagai operand dalam
operasi perhitungan
cth: integer I = new Integer(42)
i++;
integer j = new integer(5)
integer k = j +5 ;
Wrapper utility method
Sebagai sebuah Class, wrapper memiliki banyak
method yang berguna, salah satunya untuk
menkonversi string ke tipe primitif yang sesuai
cth : String s= “23”;
int x= [Link](s);
double d = [Link](“420.44”);
boolean b = new boolean(“true”).booleanValue();
Wrapper utility method
Konversi primitif ke string
cth: double d = 42.5;
String doubleString= [Link] (d);
Atau
String doubleString= “ “ + d;
Bahan Lanjut
Exception Handling