Title: Pemrograman Berbasis Obyek
1Pemrograman Berbasis Obyek
- Advanced Class Features 1
2Topik
- Object class
- String
- StringBuffer
- Math class
- Wrapper class
- Static
- Static initializer
- Final
3java.lang package
- Kompiler java otomatis mengimport seluruh kelas
dalam package java.lang ke setiap file program. - Kelas terpenting yang ada dalam package adalah
- Object
- Math
- Wrapper class
- String
- StringBuffer
4Kelas Object
- Kelas Object merupakan akar dari semua kelas
Java. - Deklarasi kelas tanpa extends, secara implisit
pasti ditambahkan extends Object. - public class Employee
- sama dengan
- public class Employee extends Object
- Method yang dimiliki diantaranya
- wait()
- notify()
- notifyAll()
- equals()
- toString()
Thread
5equals() method
- Definisi method
- public boolean equals(Object object)
- Untuk class Object
- Fungsi method equals() sama dengan operator .
Yaitu untuk membandingkan reference nya. - Override method equals() sehingga lebih berguna
dalam pembandingan - Object reference comparison
- if (d1 d2)
- Relevant instance variables comparison
- if (d1.equals(d2))
6equals() method - Contoh
7TestEquals menguji kelas MyDate
8equals() method Output TestEquals
9Override equals method
Output
10toString() method
- Definisi
-
- Menghasilkan representasi string dari state
object - Menampilkan nama kelas object diikuti oleh kode
hash - Hash code merupakan tanda unik berupa integer
yang diberikan oleh Java pada object. - Override method toString() agar lebih berguna.
11Kelas String
- KelasString berisi string yang tetap (immutable
string). - Sekali intance String dibuat maka isinya tidak
bisa diubah. - Memiliki beberapa konstruktor, diantaranya yg
umum - String s1 new String(immutable)
- String s1 immutable
- Java mempunyai media penyimpanan literal string
yang yang disebut pool. - Jika suatu literal string sudah ada di pool, Java
tidak akan membuat copy lagi.
12String identik
Kedua potongan program diatas OK Contoh pertama
membandingkan Contentnya. Contoh kedua
membandingkan referencesnya.
13Memanggil konstruktor String secara eksplisit
- String s2 new String(Constructed)
- Pada saat runtime ? statement new String()
dieksekusi, Constructed akan dibuatkan lagi di
program space. - Bila di pool sudah ada Constructed, akan tetap
dibuatkan program space - Supaya Constructed benar-benar disimpan di pool
maka gunakan method intern().
14equals() dan pada kelas String
- Method equals() membandingkan contentnya
- Operator membandingkan alamatnya.
15Method method pada kelas String
- char charAt(int index) Returns the indexed
character of a string, where the index of the
initial character is 0. - String concat(String addThis) Returns a new
string consisting of the old string followed by
addThis. - int compareTo(String otherString) Performs a
lexical comparison returns an int that is less
than 0 if the current string is less than
otherString, equal to 0 if the strings are
identical, and greater than 0 if the current
string is greater than otherString. - boolean endsWith(String suffix) Returns true if
the current string ends with suffix otherwise
returns false.
16Method method pada kelas String
- boolean equals(Object ob) Returns true if ob
instanceof String and the string encapsulated by
ob matches the string encapsulated by - the executing object.
- boolean equalsIgnoreCase(String s) Creates a new
string with the same value as the executing
object, but in lower case. - int indexOf(int ch) Returns the index within the
current string of the first occurrence of ch.
Alternative forms return the index of a string
and begin searching from a specified offset. - int lastIndexOf(int ch) Returns the index within
the current string of the last occurrence of ch.
Alternative forms return the index of a string
and end searching at a specified offset from the
end of the string.
17Method method pada kelas String
- int length() Returns the number of characters in
the current string. - String replace(char oldChar, char newChar)
Returns a new string, generated by replacing
every occurrence of oldChar with newChar. - boolean startsWith(String prefix) Returns true
if the current string begins with prefix
otherwise returns false. Alternate forms begin
searching from a specified offset. - String substring(int startIndex) Returns the
substring, beginning at startIndex of the current
string and extending to the end of the current
string. An alternate form specifies starting and
ending offsets. - String toLowerCase() Creates a new string with
the same value as the executing object, but in
lower case.
18Method method pada kelas String
- String toString() Returns the executing object.
- String toUpperCase() Converts the executing
object to uppercase and returns a new string. - String trim() Returns the string that results
from removing whitespace characters from the
beginning and ending of the current string.
19trim dan replace
20Kelas StringBuffer
- Kelas untuk mengubah string secara dinamis
- Konstruktor
- StringBuffer() Constructs an empty string buffer
- StringBuffer(int capacity) Constructs an empty
string buffer with the specified initial capacity - StringBuffer(String initialString) Constructs a
string buffer that initially contains the
specified string
21Method method pada kelas Stringbuffer
- StringBuffer append(String str) Appends str to
the current string buffer. Alternative forms
support appending primitives and character
arrays these are converted to strings before
appending. - StringBuffer append(Object obj) Calls toString()
on obj and appends the result to the current
string buffer. - StringBuffer insert(int offset, String str)
Inserts str into the current string - buffer at position offset. There are numerous
alternative forms. - StringBuffer reverse() Reverses the characters
of the current string buffer. - StringBuffer setCharAt(int offset, char newChar)
Replaces the character at position offset with
newChar. - StringBuffer setLength(int newLength) Sets the
length of the string buffer to newLength. If
newLength is less than the current length, the
string is truncated. If newLength is greater than
the current length, the string is padded with
null characters.
22Memodifikasi Stringbuffer
23Menggabung String- Cara Mudah
- Cara menggabung string diantaranya
- concat() method of the String class
- append() method of the StringBuffer class
- operator.
- Contoh
24Kelas Math
- Kumpulan method method dan konstanta yang
mendukung perhitungan matematika - Konstanta E dan PI adalah final, sehigga tidak
bisa diubah. - Constructor adalah private, sehingga tidak bisa
membuat instance-nya. - Semua method dan konstanta bersifat static
25Method - method pada kelas Math
26Method - method pada kelas Math
27The Wrapper Classes
- Kelas sederhana yang membungkus suatu nilai
tunggal yang tetap (immutable value), seperti - Integer class wraps up an int value,
- Float class wraps up a float value.
28Tipe data Primitives dan Wrappers
29equals() dan pada wrapperclass
- Method equals() membandingkan content-nya
- Operator membandingkan alamatnya.
30The retrieval methods
- public byte byteValue()
- public short shortValue()
- public int intValue()
- public long longValue()
- public float floatValue()
- public double doubleValue()
- public boolean booleanValue()
- public char charValue()
31Kesimpulan Kelas Wrapper
- Tiap tipe data primitif mempunyai korespondensi
dengan satu tipe wrapper class. - Semua tipe wrapper class dapat dibuat dari tipe
data primitifnya, khusus untuk wrapper class
Character bisa dibuat dari char(primitif) dan
string. - Wrapped values can be tested for equality with
the equals() method.
32Kesimpulan Kelas Wrapper
- All six numeric wrapper types support all six
numeric XXXValue() methods. - Wrapped values can be extracted with various
XXXValue() methods. - Kelas wrapper Tidak dapat dimodifikasi.
33Static
- Static digunakan sebagai modifier pada
- Variable
- Method
- Inner class
- Static mengindikasikan bahwa atribut atau method
tersebut milik class. - Anggota class yang bersifat static ini sering
disebut dengan class members (class variable
dan class methods).
34Class Variable
- Class variable bersifat milik bersama dalam arti
semuainstance/obyek dari class yang sama akan
mempunyai classvariable milik bersama. - Class variable mirip dengan global variable.
35Class Variable
36Class Variable
- Tanpa membuat obyeknya terlebih dahulu, kita bisa
mengakses class variable dari luar class (bila
variabel tersebut bertipe public)
37Class Method
- Tanpa membuat obyeknya terlebih dahulu, kita bisa
mengaksesclass method dari luar class.
38Class Method
Pemanggilan method getTotalCount tanpa membuat
object Count terlebih dahulu
39Static kesimpulan
- Static method bisa diakses dari luar class tanpa
harus membuat obyeknya terlebih dahulu. - Konsekuensi semua variabel atau method yang
diakses oleh static method tersebut harus
bersifat static juga. - Jika static method mengakses non-static method
dan non-static variable maka akan menyebabkan
compile error.
40Static contoh error program
41Static Initializer
- Block yang dideklarasikan static pada suatu class
yang letaknya tidak berada dalam deklarasi
method. - Static block ini dieksekusi hanya sekali, yaitu
ketika class dipanggil pertama kali. - Jika pada statement class terdapat lebih dari
satu static initializer maka urutan eksekusi
berdasarkan mana yang dideklarasikan lebih dulu. - Static block biasanya digunakan untuk
menginisialisasi static attribute (class
variable).
42Contoh Static Initializer
Kode pada baris 4, menggunakan static method pada
class Integer yang returns Integer Object.
43Final
- Final class tidak bisa dibuat subclass.
(java.lang.String merupakan final class) - Final method tidak bisa di override.
- Final variable bersifat konstan.
- Final variable hanya bisa dideklarasikan sekali
saja, assignment final variable tidak harus pada
saat dideklarasikan ? blank final variable. - Blank final instance variable harus di set di
tiap constructor. - Blank final variable pada method harus di set
pada method body sebelum digunakan.
44Final contoh
45Final pada variabel Object
- Referensi/alamat harus tetap, state dari object
boleh dirubah