1.Encapsulation
class BankAccount {
private double balance=0;
public void deposit(double x) {
if(x > 0) {
balance += x;
}
}
}
enkapsulasi memberikan manfaat sebagai berikut:
- Kontrol cara data diakses atau diubah
- Lebih fleksibel dan mudah diubah kode
- Kemampuan untuk mengubah satu bagian dari kode tanpa mempengaruhi bagian lain
2.1.Inheritance
Class dapat didefinisikan dengan referensi pada class yang lain yang telah terdefinisi.
Inheritance merupakan pewarisan atribut dan method pada sebuah class yang diperoleh dari
class yang telah terdefinisikan tersebut. Class yang diwarisi class yang lain di sebut dengan
subclass, sedangkan class mewarisi disebut dengan superclass. Salah satu keuntungan dari
inheritance adalah Subclass dari merubah atau memodifikasi apa yang telah diwariskan
oleh Superclass. Untuk mewarisi dari kelas, gunakan kata kunci perluasan.Contoh ini
menunjukkan bagaimana cara kelas Anjing mewarisi dari kelas Hewan.
Ketika satu kelas diwarisi dari kelas lain, ia mewarisi semua variabel dan metode non-
pribadi superclass.
Contoh:
class Animal {
protected int legs;
public void eat() {
System.out.println("Animal eats");
}
}
class Dog extends Animal {
Dog() {
legs = 4;
}
}
Kami sekarang dapat mendeklarasikan objek Dog dan memanggil metode makan
superclass-nya:
class MyClass {
public static void main(String[ ] args) {
Dog d = new Dog();
d.eat();
}
}
2.3.Inheritance
3.Polymorphism
Dalam kamus pemrograman polymorphism mengacu pada prinsip dalam biologi di mana suatu organisme atau
spesies dapat memiliki banyak bentuk atau tahapan yang berbeda. Prinsip ini juga dapat diterapkan untuk
pemrograman dan bahasa seperti bahasa Java berorientasi objek. Subclass kelas dapat menentukan perilaku
mereka sendiri yang unik dan belum berbagi beberapa fungsi yang sama dari kelas induk. Panggilan ke
metode anggota akan menyebabkan implementasi yang berbeda dijalankan, tergantung pada jenis objek yang
memohon metode.
Berikut ini contohnya: Anjing dan Kucing adalah kelas yang mewarisi dari kelas Hewan.
class Animal {
public void makeSound() {
System.out.println("Grr...");
}
}
class Cat extends Animal {
public void makeSound() {
System.out.println("Meow");
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println("Woof");
}
}
Karena semua objek Kucing dan Anjing adalah objek Hewan, kita dapat melakukan hal berikut:
public static void main(String[ ] args) {
Animal a = new Dog();
Animal b = new Cat();
}
Kami telah membuat dua variabel referensi jenis Hewan, dan mengarahkan mereka ke objek Kucing dan
Anjing.
Sekarang, kita bisa memanggil metode makeSound ().
a.makeSound();
//Outputs "Woof"
b.makeSound();
//Outputs "Meow"
4.1.Method Overriding
Seperti yang kita lihat di pelajaran sebelumnya, subkelas dapat mendefinisikan perilaku yang khusus untuk
jenis subkelas, yang berarti bahwa subkelas dapat menerapkan metode kelas induk berdasarkan kebutuhannya.
Fitur ini dikenal sebagai metode override.
Contoh:
class Animal {
public void makeSound() {
System.out.println("Grr...");
}
}
class Cat extends Animal {
public void makeSound() {
System.out.println("Meow");
}
}
Ketika metode memiliki nama yang sama, tetapi parameter yang berbeda, ini dikenal sebagai metode
overloading.
Ini bisa sangat berguna ketika Anda membutuhkan fungsionalitas metode yang sama untuk berbagai jenis
parameter.Contoh :
int max(int a, int b) {
if(a > b) {
return a;
}
else {
return b;
}
}
5.1.Abstraction
Class abstract digunakan untuk mendefinisikan sebuah kelas yang hanya mendeklarasikan format generik
tanpa mengimplementasikan secara detail fungsi-fungsi dari kelas abstrak yang ada. Perintah abstract
diletakkan sebelum nama Class dan nama Method. Contoh dunia nyata yang bagus adalah sebuah buku.
Ketika Anda mendengar istilah buku, Anda tidak tahu secara persis spesifikasinya, seperti jumlah halaman,
warna, atau ukurannya, tetapi Anda memahami gagasan, atau abstraksi, dari sebuah buku.
Konsep abstraksi adalah bahwa kita fokus pada kualitas-kualitas penting, daripada karakteristik khusus dari
satu contoh khusus.
Kelas abstrak didefinisikan menggunakan kata kunci abstrak.
- Jika kelas dideklarasikan abstrak itu tidak dapat dipakai (Anda tidak dapat membuat objek dari jenis itu).
- Untuk menggunakan kelas abstrak, Anda harus mewarisinya dari kelas lain.
- Setiap kelas yang berisi metode abstrak harus didefinisikan sebagai abstrak.
5.2.Abstract Class
Sebagai contoh, kita dapat mendefinisikan kelas Satwa kita sebagai abstrak:
An interface adalah kelas yang benar-benar abstrak yang hanya berisi metode abstrak.
Beberapa spesifikasi untuk antarmuka:
- Ditetapkan menggunakan kata kunci antarmuka.
- Dapat memuat hanya variabel final statis.
- Tidak dapat memuat konstruktor karena antarmuka tidak dapat digunakan.
- Antarmuka dapat memperluas antarmuka lainnya.
- Kelas dapat mengimplementasikan sejumlah antarmuka.
Contoh :
interface Animal {
public void eat();
public void makeSound();
}
6.2.Interfaces
interface Animal {
public void eat();
public void makeSound();
}
Menetapkan nilai satu jenis ke variabel jenis lain dikenal sebagai Pengecoran Jenis.
Untuk mentransmisikan nilai ke tipe tertentu, tempatkan tipe dalam tanda kurung dan posisikan di depan
nilainya.
Contoh:
nt a = (int) 3.14;
System.out.println(a);
//Outputs 3
Kode di atas adalah casting nilai 3.14 ke integer, dengan 3 sebagai nilai yang dihasilkan.
Contoh lain:
double a = 42.571;
int b = (int) a;
System.out.println(b);
//Outputs 42
Java mendukung pengecoran bilangan bulat otomatis ke titik mengambang, karena tidak ada kehilangan
presisi.
Di sisi lain, jenis pengecoran adalah wajib ketika menetapkan nilai floating point ke variabel integer.
8.Downcasting
Upcasting
Anda dapat mentransmisikan turunan dari subclass ke superclass-nya.
Perhatikan contoh berikut, dengan asumsi bahwa Cat adalah subkelas Animal.
Animal a = new Cat();
Downcasting
Pengecoran objek superclass ke subkelasnya disebut downcasting.
Contoh:
Animal a = new Animal();
((Cat)a).makeSound();
9.1.Anonymous Classes
Kelas anonim memungkinkan Anda membuat kode Anda lebih ringkas. Mereka memungkinkan Anda untuk
mendeklarasikan dan instantiate kelas pada saat yang sama. Mereka seperti kelas lokal, kecuali bahwa mereka
tidak memiliki nama. Gunakan mereka jika Anda perlu menggunakan kelas lokal hanya sekali.
Kelas anonim adalah cara untuk memperluas kelas yang ada dengan cepat.
Misalnya, pertimbangkan untuk memiliki mesin kelas:
class Machine {
public void start() {
System.out.println("Starting...");
}
}
Saat membuat objek Machine, kita dapat mengubah metode start dengan cepat.
public static void main(String[ ] args) {
Machine m = new Machine() {
@Override public void start() {
System.out.println("Wooooo");
}
};
m.start();
}
//Outputs "Wooooo";
9.2.Anonymous Classes
Modifikasi hanya berlaku untuk objek saat ini, dan bukan kelas itu sendiri. Jadi jika kita membuat objek lain
dari kelas itu, implementasi metode awal akan menjadi yang didefinisikan di kelas.
class Machine {
public void start() {
System.out.println("Starting...");
}
}
public static void main(String[ ] args) {
Machine m1 = new Machine() {
@Override public void start() {
System.out.println("Wooooo");
}
};
Machine m2 = new Machine();
m2.start();
}
//Outputs "Starting..."
10.Inner Classes
Java mendukung kelas-kelas bersarang; kelas dapat menjadi anggota kelas lain.
Menciptakan kelas batin cukup sederhana. Tulis saja kelas di dalam kelas. Tidak seperti kelas, kelas batin bisa
menjadi pribadi. Setelah Anda mendeklarasikan kelas privat tertutup, itu tidak dapat diakses dari objek di luar
kelas.
Contoh:
class Robot {
int id;
Robot(int i) {
id = i;
Brain b = new Brain();
b.think();
}
11.1.Comparing Objects
Di java , kita dapat membedakan dua jenis persamaan.Persamaan referensi objek: ketika dua referensi objek
mengarah ke objek yang sama.Kesetaraan nilai objek: ketika dua objek terpisah kebetulan memiliki nilai /
status yang sama.Jika dua objek memiliki referensi yang sama, keduanya sama nilainya juga.
Ingat bahwa ketika Anda membuat objek, variabel menyimpan referensi ke objek.
Jadi, ketika Anda membandingkan objek menggunakan operator pengujian kesetaraan (==), itu sebenarnya
membandingkan referensi dan bukan nilai objek.
Contoh:
class Animal {
String name;
Animal(String n) {
name = n;
}
}
class MyClass {
public static void main(String[ ] args) {
Animal a1 = new Animal("Robby");
Animal a2 = new Animal("Robby");
System.out.println(a1 == a2);
}
}
//Outputs false
11.2.equals()
Setiap objek memiliki metode equals equals () yang digunakan untuk pengujian kesetaraan semantik.
Namun, untuk membuatnya bekerja untuk kelas kami, kami perlu menimpanya dan memeriksa kondisi yang
kami butuhkan.
Ada cara sederhana dan cepat menghasilkan metode equals (), selain menulisnya secara manual.
Cukup klik kanan di kelas Anda, buka Source-> Generate hashCode () dan equals () ...
Metode hashCode () yang dihasilkan secara otomatis digunakan untuk menentukan tempat menyimpan objek
secara internal. Setiap kali Anda menerapkan sama, Anda HARUS juga menerapkan hashCode.
Kita dapat menjalankan tes lagi, menggunakan metode yang sama:
public static void main(String[ ] args) {
Animal a1 = new Animal("Robby");
Animal a2 = new Animal("Robby");
System.out.println(a1.equals(a2));
}
//Outputs true
12.1.Enums
Sebuah enum di Java sama seperti kelas lainnya, dengan set contoh yang telah ditentukan. Enum adalah tipe
khusus yang digunakan untuk mendefinisikan koleksi konstanta.
Berikut ini contoh Enum sederhana:
enum Rank {
SOLDIER,
SERGEANT,
CAPTAIN
}
Perhatikan bahwa nilai dipisahkan koma.
Anda bisa merujuk ke konstanta di enum di atas dengan sintaks dot.
Rank a = Rank.SOLDIER;
12.2.Enums
Setelah mendeklarasikan Enum, kita dapat memeriksa nilai yang sesuai dengan, a switch statement.
Rank a = Rank.SOLDIER;
switch(a) {
case SOLDIER:
System.out.println("Soldier says hi!");
break;
case SERGEANT:
System.out.println("Sergeant says Hello!");
break;
case CAPTAIN:
System.out.println("Captain says Welcome!");
break;
}
//Outputs "Soldier says hi!"
12.3.Enums
Anda harus selalu menggunakan Enums ketika sebuah variabel (terutama parameter metode) hanya dapat
mengambil satu dari sekumpulan kecil nilai yang mungkin.
Jika Anda menggunakan Enums bukan bilangan bulat (atau kode String), Anda meningkatkan pemeriksaan
waktu-kompilasi dan menghindari kesalahan dari melewatkan konstanta yang tidak valid, dan Anda
mendokumentasikan nilai mana yang sah untuk digunakan.
Java adalah bahasa pemrograman tingkat tinggi yang berorientasi objek dan program java tersusun dari
bagian yang disebut kelas. Kelas terdiri atas metode-metode yang melakukan pekerjaan dan mengembalikan
informasi setelah melakukan tugasnya. Para pemrogram Java banyak mengambil keuntungan dari kumpulan
kelas di pustaka kelas Java, yang disebut dengan Java Application Programming Interface (API). Kelas-kelas
ini diorganisasikan menjadi sekelompok yang disebut paket (package). Java API telah menyediakan
fungsionalitas yang memadai untuk menciptakan applet dan aplikasi canggih. Jadi ada dua hal yang harus
dipelajari dalam Java, yaitu mempelajari bahasa Java dan bagaimana mempergunakan kelas pada Java API.
Kelas merupakan satu-satunya cara menyatakan bagian eksekusi program, tidak ada cara lain. Pada Java
program javac untuk mengkompilasi file kode sumber Java menjadi kelas-kelas bytecode. File kode sumber
mempunyai ekstensi *.java. Kompilator javac menghasilkan file bytecode kelas dengan ekstensi *.class.
Interpreter merupakan modul utama sistem Java yang digunakan aplikasi Java dan menjalankan program
bytecode Java.
Beberapa keunggulan java yaitu java merupakan bahasa yang sederhana. Java dirancang agar mudah
dipelajari dan digunakan secara efektif. Java tidak menyediakan fitur-fitur rumit bahasa pemrograman tingkat
tinggi, serta banyak pekerjaan pemrograman yang mulanya harus dilakukan manual, sekarang digantikan
dikerjakan Java secara otomatis seperti dealokasi memori. Bagi pemrogram yang sudah mengenal bahasa C+
+ akan cepat belajar susunan bahasa Java namun harus waspada karena mungkin Java mengambil arah
(semantiks) yang berbeda dibanding C++.
Java API adalah kumpulan kelas dan antarmuka yang telah ditulis untuk Anda gunakan.
Dokumentasi Java API dengan semua API yang tersedia dapat ditemukan di situs web Oracle di
http://docs.oracle.com/javase/7/docs/api/
Setelah Anda menemukan paket yang ingin Anda gunakan, Anda perlu mengimpornya ke kode Anda.
Paket dapat diimpor menggunakan kata kunci impor.
Sebagai contoh:
import java.awt.*;
The awt package berisi semua kelas untuk membuat antarmuka pengguna dan untuk melukis grafik dan
gambar.