Inheritance: konsep fundamental dlm bhs pemrograman Java yang memungkinkan class-class tertentu untuk inherit methods & instance dari sebuah general class.
- class yang meng-inherit abstract class dapat meng-override methods yang ada.
- sebuah class hanya bisa meng-extend satu class lainnya.
Abstract Class: class yang tdk bisa di instantiate dan harus di extend.
- abstract class dpt memiliki abstract methods dan dapat meng-extend abstract class lain tanpa mengimplementasikan method yang ada.
Interfaces: digunakan untuk mendefinisikan fungsionalitas untuk class-class yang meng-implement interface tersebut.
- sebuah class dapat meng-implement > 1 interface.
Encapsulation: konsep menyimpan data bersamaan dengan methods untuk mengolah data tersebut dalam satu discrete class.
- memungkinkan data & method hiding (disebut juga information hiding).
Access Modifier: keyword yang menandakan apa saja yang dapat mengakses methods & instance variables.
- public, protected, private
Information Hiding: konsep untuk menyembunyikan detil implementasi dari sebuah class dengan menggunakan restrictive access modifiers.
Setter & Getter: final concept dari information hiding. Sebaiknya instance variable dibuat private. Dengan demikian, tdk ada class external yang mampu mengakses variables secara langsung. Jika dibutuhkan, dapat mengakses setter & getternya saja.
LAB SESSION
- JavaDB
- Java Data Object
- Java Database Connectivity
- PreparedStatement
- Transactions
Week10
Polymorphism: sebuah object dapat berperan sebagai object lain dengan tipe yang berbeda dari original type-nya.
- dapat terjadi jika sebuah class meng-inherit class lain.
- Polymorphism juga dapat terjadi ketika sebuah class meng-implements interface, karena class tersebut harus memiliki methods yang sama seperti interface-nya, sehingga class tersebut dapat dianggap sebagai instance dari interface.
Casting: memungkinkan sebuah object untuk di-convert kembali menjadi original runtime type atau type dari superclass nya.
- untuk melakukan casting, type diletakkan didalam tanda kurung ().
double avg = 3.79;
float gpa = (float) avg;
A. Casting Primitives: harus secara eksplisit agar tidak kehilangan precision saat konversi.
- Precision dapat hilang ketika: larger primitive di cast ke smaller primitives; floating point decimal di cast ke whole number primitive types.
B. Casting between primitives & Objects: dengan auto boxing & auto unboxing.
- Auto Boxing: wrap primitive value kedalam wrapper class yang bersangkutan.
- Auto Unboxing: unwrap value dari wrapper class kedalam primitive value.
C. Casting Objects
- sebuah object dapat berperan menjadi object superclass nya.
- untuk dapat mengakses fitur spesifik dari specific class, sebuah general class harus di cast kembali dengan specific class tersebut.
- contoh:
class Bank(){
public bankMethod(){ return "Bank";};
}
class Account extends Bank{
public bankMethod(){ return "Account";};
public accountMethod(){ return "AccMethod";};
}
public class TestCast{
public static void main (String args[]){
Bank a = new Bank();
Bank b = new Account();
Account c = new Account();
sout(a.bankMethod()); //Bank
sout(b.bankMethod()); //Account
sout(c.bankMethod()); //Account
sout(b.accountMethod()); //invalid
sout((Account)b.accountMethod()); //Account
}
}
LAB SESSION
- Polymorphism via Interface & Inheritance
- Casting between primitives & objects
0 comments:
Post a Comment