Tugas 2 Buku Deitel 8.1-8.6

Jika program telah tertulis semua, program akan terlihat seperti ini

8.1 Time1 class declaration maintains the time in 24-hour format

Dalam contoh ini, kelas Time1 tidak mendeklarasikan konstruktor, jadi kelas tersebut memiliki konstruktor default yabg disediakan oleh kompilator. Setiap variabel instance secara implisit menerima nilai default 0 untuk sebuah int. Variabel instance juga dapat diinisialisasi ketika dideklarasikan di badan kelas, menggunakan sintaks inisialisasi yang sama dengan variabel lokal.

8.2 Time1 object used in an application

Kelas aplikasi Time1Test menggunakan kelas Time1. Baris 9 mendeklarasikan dan membuat objek Time1 dan menugaskannya ke variabel lokal waktu. Operator new secara implisit memanggil konstruktor default Time1 kelas, karena Time1 tidak mendeklarasikan konstruktor apa pun. Baris 12–16 mengeluarkan waktu terlebih dahulu dalam format waktu universal (dengan memanggil metode toUniversalString waktu sebaris 13), kemudian dalam format waktu standar (dengan secara eksplisit memanggil metode toString waktu sebaris 15) untuk mengonfirmasi bahwa objek Time1 diinisialisasi dengan benar. Selanjutnya, baris 19 memanggil metode setTime dari objek waktu untuk mengubah waktu. Kemudian baris 20-24 menampilkan waktu lagi dalam kedua format untuk mengonfirmasi bahwa waktu telah diatur dengan benar.



8.3 Controlling access to members

Pengubah akses publik dan pribadi mengontrol akses ke variabel dan metode kelas. Tujuan utama dari metode publik adalah untuk memberi tahu klien kelas tentang tampilan layanan yang disediakan kelas (antarmuka publik kelas). Klien tidak perlu peduli dengan bagaimana kelas menyelesaikan tugasnya. Karena alasan ini, variabel privat dan metode privat kelas (yaitu, detail implementasinya) tidak dapat diakses oleh kliennya. Menunjukkan bahwa anggota kelas privat tidak dapat diakses di luar kelas. Baris 9-11 mencoba mengakses langsung variabel instance privat jam, menit, dan detik waktu objek Time1. Ketika program ini dikompilasi, kompilator menghasilkan pesan kesalahan bahwa anggota privat ini tidak dapat diakses. Program ini mengasumsikan bahwa kelas Time1 digunakan.

8.4 Referring to the current object's members with this reference

Dalam kasus ini, dua file terpisah diproduksi — SimpleTime.class dan ThisTest.class. Jika satu file kode sumber (.java) berisi beberapa deklarasi kelas, kompilator menempatkan kedua file kelas untuk kelas tersebut di direktori yang sama. Perhatikan juga pada Gambar 8.4 bahwa hanya kelas ThisTest yang dinyatakan publik. File kode sumber hanya dapat berisi satu kelas publik — jika tidak, kesalahan kompilasi akan terjadi. Kelas non-publik hanya dapat digunakan oleh kelas lain dalam paket yang sama. Jadi, dalam contoh ini, kelas SimpleTime hanya dapat digunakan oleh kelas ThisTest.



8.5 Time class case study: overloaded constructors

Kelas Time2 berisi lima konstruktor kelebihan beban yang menyediakan cara mudah untuk menginisialisasi objek dari kelas baru Time2. Setiap konstruktor menginisialisasi objek untuk memulai dalam keadaan yang konsisten. Dalam program ini, empat konstruktor memanggil yang kelima, yang pada gilirannya memanggil metode setTime untuk memastikan bahwa nilai yang diberikan untuk satu jam berada dalam kisaran 0 hingga 23, dan nilai untuk satu menit dan detik masing-masing dalam kisaran 0 hingga 59. Kompilator memanggil konstruktor yang sesuai dengan mencocokkan jumlah, jenis, dan urutan jenis argumen yang ditentukan dalam panggilan konstruktor dengan nomor, jenis, dan urutan jenis parameter yang ditentukan dalam setiap deklarasi konstruktor. Class Time2 juga menyediakan metode set dan get untuk setiap variabel instance.

8.6 Overloaded constructors used to initialize Time2 objects

Kelas Time2Test memanggil konstruktor Time2 yang kelebihan beban (baris 8-12 dan 40). Baris 8 memanggil konstruktor tanpa argumen (kode 8.5, baris 12-15). Baris 9-13 dari program menunjukkan argumen yang lewat ke konstruktor Time2 lainnya. Baris 9 memanggil konstruktor argumen tunggal yang menerima int pada baris 18-21 dari kode 8.5. Baris 10 memanggil konstruktor dua argumen pada baris 24-27 dari kode 8.5. Baris 11 memanggil konstruktor tiga argumen pada baris 30-33 dari kode 8.5. Baris 12 memanggil konstruktor argumen tunggal yang menggunakan Time2 pada baris 36-40 dari kode 8.5. Selanjutnya, aplikasi menampilkan representasi String dari setiap objek Time2 untuk mengonfirmasi bahwa itu diinisialisasi dengan benar. Baris 40 mencoba menginisialisasi t6 dengan membuat objek Time2 baru dan meneruskan tiga nilai yang tidak valid ke konstruktor. Saat konstruktor mencoba menggunakan nilai jam yang tidak valid untuk menginisialisasi jam objek, IllegalArgumentException akan terjadi. Kami menangkap pengecualian ini pada baris 42 dan menampilkan pesan kesalahannya, yang menghasilkan baris terakhir dari keluaran.



Komentar

Postingan populer dari blog ini

Tugas 9 Exception Handling