AKSES TERHADAP KELAS DAN UNSUR PEWARISAN
1. Tujuan
· Memahami visibility
· Memahami Pewarisan (Inheritance) · Memahami Antarmuka (interface)
2. Dasar
Teori
· Visibility adalah cara bagaimana suatu
data/atribut serta fungsi/metoda
yang dimiliki suatu kelas/objek dapat diakses dari kelas-kelas/bjek-objek
lain. Contoh : public, private, protected, default
yang dimiliki suatu kelas/objek dapat diakses dari kelas-kelas/bjek-objek
lain. Contoh : public, private, protected, default
3. Tugas Pendahuluan
1. Sebutkan perbedaan public, private, protected
dan default
2. Apa
yang dimaksud dengan pewarisan (inheritance) ? Berikan contoh
4. Praktikum
Percobaan 1a. package Big_Cat; class Big_Cat
package bigCat;
// Kelas abstrak
public abstract class Big_Cat {
protected static String name;
protected abstract void eat();
}
protected abstract void eat();
}
// Kelas turunan
class Lion extends Big_Cat {
// Kostruktor untuk kelas Lion
public Lion (String nameLion) {
// Mengisi peubah yang diwarisi dari kelas abstrak
Lion.name = nameLion;
Lion.name = nameLion;
}
// Implementasi
metoda yang diwarisi dari kelas abstrak public void eat() {
System.out.println("Lion can eat
meat.");
}
}
//Kelas turunan
class Tiger extends Big_Cat {
// Kostruktor untuk kelas Lion
public Tiger (String nameTiger) {
// Mengisi peubah yang diwarisi dari kelas abstrak
Tiger.name = nameTiger;
Tiger.name = nameTiger;
}
// Implementasi
metoda yang diwarisi dari kelas abstrak public void eat() {
System.out.println("Tiger can eat meat
and drink milk.");
}
}
//Kelas turunan
class Cat extends Big_Cat {
// Kostruktor untuk kelas Lion
public Cat (String nameCat) {
public Cat (String nameCat) {
// Mengisi peubah yang diwarisi dari kelas abstrak
Cat.name = nameCat;
Cat.name = nameCat;
}
// Implementasi
metoda yang diwarisi dari kelas abstrak public void eat() {
System.out.println("Cat can eat meat,
drink milk, and sometimes
rice.");
}
}
}
Percobaan 1b.
package bigCat class TestBigCat package bigCat;
public class TestBigCat {
public static void main(String[] args) {
// Memanfaatkan kelas Lion
Lion myLion = new Lion("Simba");
System.out.println("My
lion is " + Lion.name); myLion.eat();
// Memanfaatkan kelas Tiger
Tiger myTiger = new
Tiger("Harimau");
System.out.println("My
tiger is " + Tiger.name); myTiger.eat();
// Memanfaatkan kelas Cat
Cat myCat = new
Cat("Kucingku manis"); System.out.println("My cat is " +
Cat.name); myCat.eat();
}
}
Percobaan 2a. package bigCatNoOverload class
BigCatNoOverload
package bigCatNoOverload;
public class Big_Cat_NoOverload {
protected static String name;
protected void eat() {
protected static String name;
protected void eat() {
System.out.println("Semua kucing besar
makan daging!");
}
}
//Kelas turunan
class WildLion extends Big_Cat_NoOverload {
// Kostruktor untuk kelas Lion
// Kostruktor untuk kelas Lion
public WildLion (String nameLion) {
// Mengisi peubah yang diwarisi dari kelas abstrak
WildLion.name = nameLion;
WildLion.name = nameLion;
}
}
//Kelas turunan
class WildTiger extends Big_Cat_NoOverload {
// Kostruktor untuk kelas Lion
// Kostruktor untuk kelas Lion
public WildTiger (String nameTiger) {
// Mengisi peubah yang diwarisi dari kelas abstrak
WildTiger.name = nameTiger;
WildTiger.name = nameTiger;
}
}
//Kelas turunan
class WildCat extends Big_Cat_NoOverload {
// Kostruktor untuk kelas Lion
// Kostruktor untuk kelas Lion
public WildCat (String nameCat) {
// Mengisi peubah yang diwarisi dari kelas abstrak
WildCat.name = nameCat;
WildCat.name = nameCat;
}
}
Percobaan 2b.
package bigCatNoOverload class TestNoOverload package bigCatNoOverload;
public class Test_NoOverload {
public static void main(String[] args) {
// Memanfaatkan kelas Lion
WildLion myLion = new
WildLion("Simba");
System.out.println("My
lion is " + WildLion.name); myLion.eat();
// Memanfaatkan kelas Tiger
WildTiger myTiger = new
WildTiger("Harimau");
System.out.println("My
tiger is " + WildTiger.name); myTiger.eat();
// Memanfaatkan kelas Cat
WildCat myCat = new
WildCat("Kucingku manis"); System.out.println("My cat is "
+ WildCat.name); myCat.eat();
}
}
Percobaan 3a. package KucingGarong class
Coba_Akses1
package KucingGarong;
class Coba_Akses1 {
public static void main (String[] args) {
Kucing kucingku = new Kucing();
// Mengisi peubah instan.
kucingku.Isi_Identitas("Pussy",
"Belang", 10);
// Menampilkan nama kucing melalui metoda.
System.out.println("Nama : " +
kucingku.ambilNama());
// Menampilkan nama kucing lewat peubah.
System.out.println("Nama : " + kucingku.Nama);
}
}
}
Percobaan 3b. package KucingGarong class
Kucing
package KucingGarong;
class Kucing {
String Nama;
String Warna;
int Berat;
String Warna;
int Berat;
// Metoda
void Isi_Identitas
(String namaKucing, String warnaKucing, int beratKucing)
{
Nama = namaKucing;
Nama = namaKucing;
Warna = warnaKucing;
Berat = beratKucing;
}
String ambilNama() {
return Nama;
return Nama;
}
String ambilWarna() {
return Warna;
}
int ambilBerat() {
return Berat;
}
}
Percobaan 4a.
package MySweetyCat class Coba_Akses2 package MySweetyCat;
class Coba_Akses2 {
public static void main (String[] args) {
Kucingku_Manis kucingku = new
Kucingku_Manis();
// Mengisi peubah instan.
kucingku.Isi_Identitas("Pussy",
"Belang", 10);
// Menampilkan nama kucing melalui metoda.
System.out.println("Nama : " +
kucingku.ambilNama());
// Menampilkan nama kucing lewat peubah.
System.out.println("Nama : " + kucingku.Nama);
}
}
}
Percobaan 4b. Package MySweetyCat class
Kucingku_Manis
package MySweetyCat;
class Kucingku_Manis {
String Nama;
String Nama;
private String Warna;
private int Berat;
private int Berat;
// Metoda
void Isi_Identitas
(String namaKucing, String warnaKucing, int beratKucing)
{
Nama = namaKucing;
Nama = namaKucing;
Warna = warnaKucing;
Berat = beratKucing;
}
String ambilNama() {
return Nama;
return Nama;
}
String ambilWarna() {
return Warna;
return Warna;
}
int ambilBerat() {
return Berat;
}
}
Percobaan 5a.
package OrangIndonesia class OrangIndonesia package OrangIndonesia;
public class OrangIndonesia {
protected String Nama;
protected String Alamat;
protected String Pekerjaan;
public OrangIndonesia
protected String Nama;
protected String Alamat;
protected String Pekerjaan;
public OrangIndonesia
(String nama, String alamat, String pekerjaan) {
super();
super();
Nama = nama;
Alamat = alamat;
Pekerjaan = pekerjaan;
}
public String getNama() {
return Nama;
return Nama;
}
public String getAlamat() {
return Alamat;
return Alamat;
}
public String getPekerjaan() {
return Pekerjaan;
return Pekerjaan;
}
}
class OrangBatak extends OrangIndonesia {
private double Gaji;
private double Gaji;
public OrangBatak
(String nama, String alamat, String pekerjaan) {
super(nama, alamat, pekerjaan);
super(nama, alamat, pekerjaan);
}
public double getGaji() {
return Gaji;
return Gaji;
}
public void setGaji(double gaji) {
Gaji = gaji;
Gaji = gaji;
}
}
class OrangJawa extends OrangIndonesia {
private double Gaji;
private double Gaji;
public OrangJawa
(String nama, String alamat, String pekerjaan) {
super(nama, alamat, pekerjaan);
super(nama, alamat, pekerjaan);
}
public double getGaji() {
return Gaji;
return Gaji;
}
public void setGaji(double gaji) {
Gaji = gaji;
Gaji = gaji;
}
}
class OrangSumba extends OrangIndonesia {
private double Gaji;
private double Gaji;
public OrangSumba
(String nama, String alamat, String pekerjaan) {
super(nama, alamat, pekerjaan);
super(nama, alamat, pekerjaan);
}
public double getGaji() {
return Gaji;
return Gaji;
}
public void setGaji(double gaji) {
Gaji = gaji;
Gaji = gaji;
}
// Overloading Metoda
public String hitungTHR (double persen){
if (persen > 0.5)
return "THR terlalu besar!";
else return
"THR tahun ini sebesar " + persen * Gaji;
}
public String hitungTHR (int persen){
if (persen > 50) return "THR terlalu
besar!"; else return "THR tahun ini sebesar " +
(persen * Gaji / 100);
(persen * Gaji / 100);
}
}
Percobaan 5b.
package OrangIndonesia class TestOrang package OrangIndonesia;
public class TestOrang {
public static void main(String[] args) {
OrangIndonesia oi =
new OrangIndonesia ("Adi", "Bandung", "Dosen");
System.out.println("Nama : " +
oi.getNama());
System.out.println("Alamat
: " + oi.getAlamat()); System.out.println
("Pekerjaan : " + oi.getPekerjaan()
+ "\n");
OrangJawa oj = new
OrangJawa ("Monovan", "Jogja", "Dosen");
System.out.println("Nama : " + oj.getNama());
System.out.println("Alamat
: " + oj.getAlamat()); System.out.println
("Pekerjaan : " + oj.getPekerjaan()
+ "\n");
OrangBatak ob = new OrangBatak
("Irwan", "Medan", "Dosen"); ob.setGaji(2000000);
System.out.println("Nama : " +
ob.getNama());
System.out.println("Alamat : " +
ob.getAlamat());
System.out.println("Pekerjaan
: " + ob.getPekerjaan()); System.out.println("Gaji : Rp " +
ob.getGaji() + "\n");
OrangSumba os = new OrangSumba
("Rocky", "Sumba", "Dosen");
os.setGaji(2000000);
os.setGaji(2000000);
System.out.println("Nama : " +
os.getNama());
System.out.println("Alamat : " +
os.getAlamat());
System.out.println("Pekerjaan : " +
os.getPekerjaan()); System.out.println("Gaji : Rp " + os.getGaji());
System.out.println
System.out.println
("Keterangan : " + os.hitungTHR(30)
+ "\n");
OrangSumba osw = new OrangSumba
("Inneke", "Sumba", "Dosen");
osw.setGaji(2000000);
osw.setGaji(2000000);
System.out.println("Nama : " +
osw.getNama());
System.out.println("Alamat : " +
osw.getAlamat());
System.out.println("Pekerjaan : " +
osw.getPekerjaan()); System.out.println("Gaji : Rp " +
osw.getGaji());
System.out.println
System.out.println
("Keterangan : " +
osw.hitungTHR(0.75) + "\n");
}
}
Percobaan 6a. package rumahAna
package rumahAna;
package rumahAna;
public interface Alamat {
public abstract void aturNama();
public abstract void aturJalan ();
public abstract void aturKota ();
}
public abstract void aturJalan ();
public abstract void aturKota ();
}
package rumahAna;
import rumahAna.Alamat;
public class Apartemen implements Alamat{
public void aturKota() {
public void aturKota() {
System.out.println("Pekalongan.");
}
public void aturJalan() {
System.out.println("Jln. Hasanudin No.
8.");
}
public void aturNama() {
System.out.println("Namaku : Ana
Mariana");
}
}
package rumahAna;
public class RumahAna {
public static void main(String[] args) {
Apartemen rmhAna =
new Apartemen(); rmhAna.aturNama();
rmhAna.aturJalan();
rmhAna.aturKota();
}
}
5. Tugas
Praktikum
1.
Definisikan dengan bahasa
Anda sendiri , istilah-istilah berikut ini :
· Class
· Class
· Object
· Instantiate
· Instance Variable
· Instance Method
· Instance Method
· Class Variables atau
static member variables · Constructor
0 komentar:
Posting Komentar