Rangkuman: Hierarki Karyawan
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Java di Coddy. Pelajaran 27 dari 87.
Tantangan
MudahMari bangun sistem hierarki karyawan lengkap yang menggabungkan semua konsep pewarisan dari bab ini. Kamu akan membuat struktur perusahaan tempat berbagai jenis karyawan memiliki atribut umum, tetapi juga memiliki perilaku khusus masing-masing.
Kamu akan mengatur kodemu dalam empat file:
Employee.java: Buat class dasar yang digunakan oleh semua karyawan. Setiap karyawan memiliki nama dan gaji. Sertakan constructor yang menginisialisasi kedua field dan methodgetDetails()yang mengembalikan:[name] earns $[salary]. Tambahkan juga methodwork()yang mencetak:[name] is working.Manager.java: Buat class yang mewarisi Employee. Manager memiliki field tambahanteamSizeyang menunjukkan jumlah orang yang mereka kelola. Gunakansuperuntuk menangani inisialisasi parent. Override methodwork()agar mencetak:[name] is managing a team of [teamSize]. Tambahkan methodgetManagerDetails()yang mengembalikan:Manager: [name] earns $[salary], Team size: [teamSize].Developer.java: Buat class lain yang mewarisi Employee. Developer memiliki fieldlanguageuntuk spesialisasi pemrograman mereka. Sekali lagi, gunakansuperuntuk bagian parent. Overridework()agar mencetak:[name] is coding in [language]. Tambahkan methodgetDeveloperDetails()yang mengembalikan:Developer: [name] earns $[salary], Language: [language].Main.java: Satukan semuanya di sini. Kamu akan menerima lima input: nama karyawan, gaji, ukuran tim manager, nama lain, dan bahasa pemrograman developer. Buat Manager dan Developer, lalu untuk masing-masing, panggil method detail khusus mereka, diikuti methodwork().
Kamu akan menerima lima input dengan urutan berikut: nama manager (String), gaji manager (double), ukuran tim (int), nama developer (String), dan bahasa pemrograman (String). Gunakan gaji 75000.0 untuk developer.
Format semua nilai gaji dengan 2 angka desimal menggunakan String.format("%.2f", salary). Output-mu harus berisi tepat empat baris: detail dan perilaku kerja manager, lalu detail dan perilaku kerja developer.
Coba sendiri
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Baca input
String managerName = scanner.nextLine();
double managerSalary = scanner.nextDouble();
int teamSize = scanner.nextInt();
scanner.nextLine(); // lewati karakter baris baru
String developerName = scanner.nextLine();
String language = scanner.nextLine();
// Gaji Developer tetap sebesar 75000.0
double developerSalary = 75000.0;
// TODO: Buat object Manager dengan managerName, managerSalary, dan teamSize
// TODO: Buat object Developer dengan developerName, developerSalary, dan language
// TODO: Cetak detail manager menggunakan getManagerDetails()
// TODO: Panggil method work() milik manager
// TODO: Cetak detail developer menggunakan getDeveloperDetails()
// TODO: Panggil method work() milik developer
}
}
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengantar OOPClass dan ObjectKata Kunci thisMethodField (Atribut)Method KonstruktorOverloading KonstruktorRangkuman: Kalkulator Sederhana4Pewarisan
Pewarisan Dasar (extends)Kata Kunci superMethod Overriding (@Override)Rantai KonstruktorKelas ObjectPewarisan Tunggal dan BertingkatMengapa Tidak Ada Pewarisan Multi-KelasRangkuman: Hierarki Karyawan7method Khusus & class Object
method toString()equals() dan hashCode()method clone()compareTo() dan ComparableAntarmuka ComparatorUlasan: Pengurutan Kustom10Penanganan Exception dalam OOP
Hierarki class ExceptionException KustomError Checked vs UncheckedPola Try-with-ResourcesRekap: Pengguna Tervalidasi2Modifier Akses & Enkapsulasi
Ikhtisar Tingkat AksesMethod Getter dan SetterPenyembunyian InformasiKata Kunci finalUlasan: Pengelola Rekening Bank5Polimorfisme
Dasar method overloadingMethod overriding (Saat program berjalan)Upcasting dan downcastingOperator instanceofclass dan method abstrakUlasan: Kalkulator Bentuk8Konsep OOP Lanjutan
Komposisi vs PewarisanAgregasi vs Komposisiinner, nested, dan anonymous classEnum dan method Enumrecord (Java 16+)sealed class (Java 17+)11Pola Desain Bagian 1
Pengantar Pola DesainPola SingletonPola FactoryPola BuilderPola ObserverPola Strategy3property class dan Anggota Statis
Variabel Instance vs Statismethod StatisBlok StatisKonstanta (static final)Rangkuman: Penghitung dan Utilitas6Antarmuka & Kelas Abstrak
Pengantar AntarmukaMengimplementasikan AntarmukaImplementasi Beberapa AntarmukaDefault & Static pada AntarmukaKelas Abstrak vs AntarmukaAntarmuka FungsionalRekap: Sistem PembayaranLatihan sendiri: Compiler Java online