Inheritance dan Rental Mobil
Inheritance Network
Network.java
Attributes: Network memiliki dua atribut:
users: Daftar (list) untuk menyimpan semua objekUser.posts: Daftar untuk menyimpan semua objekPost
public Network() menginisialisasi list users dan posts sebagai list kosong menggunakan ArrayList.addUser(String username) membuat objek User baru dengan username yang diberikan, menambahkannya ke list users, mencetak pesan konfirmasi, dan mengembalikan objek User yang baru.addPost(Post post) menambahkan objek Post ke list posts.showAllPosts() mencetak daftar semua postingan beserta detailnya (username, konten, dan jumlah likes).Post.java
Kelas Post ini merepresentasikan sebuah postingan dalam jaringan sosial dengan atribut sebagai berikut:
Attributes:
author(penulis),content(isi postingan), danlikes(daftar pengguna yang menyukai postingan).Constructor:
Post(User author, String content)menginisialisasiauthor,content, dan list kosonglikes.Methods:
getContent()dangetAuthor(): Mengembalikan konten dan penulis postingan.getLikes()dangetLikeCount(): Mengembalikan daftar pengguna yang menyukai dan jumlahlikes.addLike(User user): Menambahuserke daftarlikesjika belum ada, lalu mencetak konfirmasi.
User.java
Kelas User ini merepresentasikan pengguna dalam jaringan sosial dengan atribut dan metode berikut:
Attributes:
username: Nama pengguna.posts: Daftar postingan yang dibuat oleh pengguna.
Constructor:
User(String username)menginisialisasiusernamedan listpostskosong.
Methods:
getUsername(): Mengembalikanusername.addPost(String content): Membuat dan menambahkan postingan baru kepostspengguna, serta mencetak konfirmasi.likePost(Post post): Menyukai postingan yang diberikan.getPosts(): Mengembalikan daftar postingan pengguna.
Main.java
Kode di atas adalah kelas Main yang menjalankan contoh interaksi dalam jaringan sosial Network.
Inisialisasi Jaringan:
- Membuat objek
Networkbernamanetwork.
- Membuat objek
Menambah Pengguna:
- Menambahkan dua pengguna,
AlicedanBob, ke jaringan menggunakan metodeaddUser.
- Menambahkan dua pengguna,
Membuat Postingan:
AlicedanBobmasing-masing membuat satu postingan menggunakan metodeaddPostdari kelasUser.
Menambahkan Postingan ke Network:
- Menambahkan postingan
AlicedanBobke daftar postingan dinetwork.
- Menambahkan postingan
Memberi Like pada Postingan:
Bobmenyukai postinganAlice, danAlicemenyukai postinganBobmenggunakan metodelikePost.
Menampilkan Semua Postingan:
network.showAllPosts()mencetak daftar semua postingan beserta penulis, konten, dan jumlah likes.
Output
Rental
Mobil
Kode ini mendefinisikan kelas Mobil yang merupakan subclass dari Kendaraan.
Mobilmemiliki atribut tambahanjumlahRodaselain atributmerk,model, dantahunProduksiyang diwariskan dari kelasKendaraan.- Konstruktor
Mobilmenerimamerk,model,tahunProduksi, danjumlahRoda, lalu memanggil konstruktorsuperuntuk menginisialisasi atribut dariKendaraandan mengatur nilaijumlahRoda. - Metode
getInfodi-override untuk menambahkan informasijumlahRodake hasilgetInfodari kelasKendaraan.
Motor
Motor adalah subclass dari Kendaraan yang menambahkan atribut jumlahRoda. Konstruktor Motor menginisialisasi atribut dari Kendaraan dan atribut khusus jumlahRoda. Metode getInfo di-override untuk menampilkan informasi lengkap, termasuk jumlahRoda, dengan menambahkan informasi tersebut ke hasil getInfo dari Kendaraan.Sepeda
Sepeda adalah subclass dari Kendaraan yang menambahkan atribut jenis untuk menyimpan tipe sepeda. Konstruktor Sepeda menginisialisasi atribut Kendaraan dan jenis. Metode getInfo di-override untuk menambahkan informasi jenis ke hasil getInfo dari Kendaraan, memberikan informasi lengkap tentang sepeda.Rental
Kelas Rental menyimpan daftar Kendaraan yang tersedia untuk disewa dan daftar penyewa yang telah menyewa kendaraan.
- Atribut
kendaraanTersedia: Menyimpan objekKendaraanyang dapat disewa. - Atribut
daftarPenyewa: Menyimpan informasi nama penyewa dan kendaraan yang disewa dalam bentuk string.
Kendaraan
Kelas Kendaraan merepresentasikan kendaraan dengan atribut dasar:
- Atribut
merk,model, dantahunProduksi: Mewakili merk, model, dan tahun produksi kendaraan. - Konstruktor
Kendaraan: Menginisialisasimerk,model, dantahunProduksisaat objekKendaraandibuat. - Metode
getInfo: Mengembalikan string yang berisi informasi lengkap tentang merk, model, dan tahun produksi kendaraan.
Main
Kelas Main menjalankan program utama untuk mengelola rental kendaraan. Di sini:
- Membuat objek
Rentaluntuk menyimpan data kendaraan dan penyewa. - Menambahkan kendaraan ke dalam daftar rental:
Mobildengan merk "Toyota", model "Avanza", tahun 2020, dan 4 roda.Motordengan merk "Yamaha", model "NMAX", tahun 2021, dan 2 roda.Sepedadengan merk "Polygon", model "Xtrada", tahun 2019, jenis "Gunung".
- Menampilkan daftar kendaraan yang tersedia di rental.
- Mendaftarkan penyewa:
- "Ali" menyewa
Mobil"Toyota Avanza". - "Budi" menyewa
Sepeda"Polygon Xtrada".
- "Ali" menyewa
- Menampilkan daftar penyewa beserta informasi kendaraan yang mereka sewa.














Komentar
Posting Komentar