More about Class Maududie - 2010
Superclass & Subclass Cetakan Dpt mencetak banyak instant dng berbagai nilai variabel yg berbeda
Superclass & Subclass Nama: John Suroto Alamat: Sidney Pekerjaan: Direktur Nama: Michael Slamin Alamat: Baratan Pekerjaan: Mahasiswa Masing2x instant memiliki Nama, Alamat & Pekerjaan beda Nama: Mariyam Jolie Alamat: Madiun Pekerjaan: PNS Cetakan Nama: Rebeccaningsih Alamat: Kalisat Pekerjaan: Siswa SMP
Superclass & Subclass class person { private String Nama; private String Alamat; private String Pekerjaan; public person (String Pekerjaan){ this.Pekerjaan = Pekerjaan; } public void setNama (String Nama){ this.Nama = Nama; public void setAlamat (String Alamat){ this.Alamat = Alamat; person mahasiswa1 = new person(“Mahasiswa”); mahasiswa1.setNama = “Michael Slamin”; mahasiswa1.setAlamat: “Baratan”; person siswaSMP1= new person(“Siswa SMP”); siswaSMP1.setNama = “Rebeccaningsih”; siswaSMP1.setAlamat: “Kalisat”; person direktur1 = new person(“Direktur”); direktur1.setNama = “John Suroto”; direktur1.setAlamat: “Sedney”; person pns1 = new person(“PNS”); pns1.setNama = “Mariyam Jolie”; pns1.setAlamat: “Madiun”;
Superclass & Subclass 7 7 8 5 Nama Perusahaan Alamat Perusahaan Siswa SMP Direktur Mahasiswa PNS Nama Perusahaan Alamat Perusahaan No. Induk Pegawai Gaji Pokok Tunjangan Fasilitas Perumahan Fasilitas Kendaraan Nama Perguruan Tinggi Alamat Perguruan Tinggi No. Induk Mahasiswa Tahun Angkatan Fakultas Jurusan SPP Nama Institusi Alamat Institusi No. Induk Pegawai Jabatan Pangkat Golongan Gaji Pokok Tunjangan Nama Sekolah Alamat Sekolah No. Induk Siswa Kelas SPP Masing-masing group memiliki jumlah & item variabel instan yg berbeda
Superclass & Subclass → Harus dimodifikasi !!!!!! Direktur Mahasiswa class person { private String Nama; private String Alamat; private String Pekerjaan; public person (String Pekerjaan){ this.Pekerjaan = Pekerjaan; } public void setNama (String Nama){ this.Nama = Nama; public void setAlamat (String Alamat){ this.Alamat = Alamat; Nama Perusahaan Alamat Perusahaan No. Induk Pegawai Gaji Pokok Tunjangan Fasilitas Perumahan Fasilitas Kendaraan Nama Perguruan Tinggi Alamat Perguruan Tinggi No. Induk Mahasiswa Tahun Angkatan Fakultas Jurusan SPP Tdk dpt Mengakomodasi → Harus dimodifikasi !!!!!! PNS Siswa SMP Nama Institusi Alamat Institusi No. Induk Pegawai Jabatan Pangkat Golongan Gaji Pokok Tunjangan Nama Sekolah Alamat Sekolah No. Induk Siswa Kelas SPP
Superclass & Subclass Superclass Subclass Master Cetakan Person class person { private String Nama; private String Alamat; private String Pekerjaan; } Cetakan Direktur Cetakan Mahasiswa Cetakan PNS Cetakan Siswa SMP State & Behavior Person State & Behavior Person State & Behavior Person State & Behavior Person State & Behavior Direktur State & Behavior Mahasiswa State & Behavior PNS State & Behavior Siswa SMP Subclass
Superclass & Subclass class person{ private String Nama; private String Alamat; private String Pekerjaan; public person(String Pekerjaan){ this.Pekerjaan = Pekerjaan; } public void setNama (String Nama){ this.Nama = Nama; public String getNama(){ return this.Nama; Class namaSubClass extends namaSuperClass{ } Subclass “Direktur” class direktur extends person{ private String NamaPerusahaan; private String AlamatPerusahaan; private String NIP; public void setNamaPerusahaan (String NamaPerusahaan){ this.NamaPerusahaan = NamaPerusahaan; } public String getNamaPerusahaan(){ return this.NamaPerusahaan;
Superclass & Subclass Superclass Subclass “Direktur” - Nama - Alamat - Pekerjaan - Nama - Alamat - Pekerjaan - NamaPerusahaan - AlamatPerusahaan - NIP Subclass “Direktur” direktur direktur1 = new direktur(); direktur1.setNama("John Suroto"); direktur1.setNamaPerusahaan("Rejeki Tiada Habis"); Pembuatan sebuah instan → “direktur1”
Superclass & Subclass Instan untuk tiap subclass
Superclass & Subclass Soal: Buatlah class sedan, truk, dan sepeda motor dimana ketiga class tersebut merupakan subclass dari otomobil
Superclass & Subclass Konstruktor superclass??? class person{ Subclass “Direktur” class person{ private String Nama; private String Alamat; private String Pekerjaan; public person(String Pekerjaan){ this.Pekerjaan = Pekerjaan; } public String getPekerjaan(){ return this.Pekerjaan; class direktur extends person{ private String NamaPerusahaan; private String AlamatPerusahaan; private String NIP; public void setNamaPerusahaan (String NamaPerusahaan){ this.NamaPerusahaan = NamaPerusahaan; } public String getNamaPerusahaan(){ return this.NamaPerusahaan; direktur direktur1 = new direktur(); System.out.println("Pekerjaan: " + direktur1.getPekerjaan());
Superclass & Subclass Konstruktor superclass??? class person{ Subclass “Direktur” class person{ private String Nama; private String Alamat; private String Pekerjaan; public person(String Pekerjaan){ this.Pekerjaan = Pekerjaan; } public String getPekerjaan(){ return this.Pekerjaan; class direktur extends person{ private String NamaPerusahaan; private String AlamatPerusahaan; private String NIP; public direktur(){ super (“Direktur”); } public void setNamaPerusahaan (String NamaPerusahaan){ this.NamaPerusahaan = NamaPerusahaan; public String getNamaPerusahaan(){ return this.NamaPerusahaan; Konstruktor superclass hanya diakses dari konstruktor subclassnya Keyword “super” direktur direktur1 = new direktur(); System.out.println("Pekerjaan: " + direktur1.getPekerjaan());
Kelas Abstrak Kelas Person Kelas Kucing Seluruh state & method terdefinisikan dengan jelas → so dpt diturunkan scr langsung menjadi instan
Kelas Abstrak Kelas MahlukHidup Contoh lainnya ???? Method: - tumbuh(); - makan(); Tdk terdefinisikan scr jelas (abstrak) Memiliki cara yang berbeda 2x dalam melaksanakan tindakan (method) Contoh lainnya ???? disebut dng “Kelas Abstrak”
Kelas Abstrak Memiliki state/behavior abstrak (tdk terdefinisikan scr lengkap) Tdk dpt diturunkan dlm bentuk instan scr langsung → hrs melalui subclass Definisi scr lengkap berada di subclass
Kelas Abstrak Menggunakan key-word “abstract” Kelas Kendaraan abstract class Kendaraan{ private String tipeKendaraan; public Kendaraan(String tipeKendaraan){ this.tipeKendaraan = tipeKendaraan; } public String getTipeKendaraan(){ return this.tipeKendaraan; public abstract void jalankan(); Belum terdefinisikan dng jelas
Kelas Abstrak Kelas Kendaraan abstract class Kendaraan{ ……. public abstract void jalankan(); } class sepedaOntel extends Kendaraan { public sepedaOntel(){ super("Sepeda Ontel"); } public void jalankan(){ System.out.println("Duduklah di atas sadel " + this.getTipeKendaraan() + “, lalu pegang kemudinya” + " dan kayuhlah sampai capek.");
Kelas Abstrak Kelas Kendaraan abstract class Kendaraan{ ……. public abstract void jalankan(); } class sepedaMotor extends Kendaraan{ public sepedaMotor(){ super("Sepeda Motor"); } public void jalankan(){ System.out.println("Duduklah di atas sadel " + this.getTipeKendaraan() + ", hidupkan mesinnya, lalu pegang kemudinya \n" + " dan perbesar gasnya sampai habis.");
Kelas Abstrak sepedaOntel ontel1 = new sepedaOntel(); System.out.println(ontel1.getTipeKendaraan()); ontel1.jalankan(); sepedaMotor motor1 = new sepedaMotor(); System.out.println(motor1.getTipeKendaraan()); motor1.jalankan();
Buat contoh kelas abstrak….