Ikhtisar Tingkat Akses
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Java di Coddy. Pelajaran 10 dari 87.
Modifier akses mengatur dari mana field dan method dapat diakses. Java memiliki empat tingkat kontrol akses.
| Pengubah | Class yang Sama | Package yang Sama | Subclass | Di Mana Saja |
|---|---|---|---|---|
private | Ya | Tidak | Tidak | Tidak |
| default (tanpa kata kunci) | Ya | Ya | Tidak | Tidak |
protected | Ya | Ya | Ya | Tidak |
public | Ya | Ya | Ya | Ya |
public class BankAccount {
private double balance; // Hanya class ini
String accountType; // Default: hanya dalam package yang sama
protected String owner; // Dalam package yang sama + subclass
public String bankName; // Dapat diakses dari mana saja
}private adalah yang paling membatasi. Gunakan untuk data internal yang tidak boleh diakses secara langsung. public adalah yang paling terbuka. Gunakan untuk method yang perlu dipanggil oleh class lain.
Jika kamu tidak menentukan modifier apa pun, Java menggunakan akses default (juga disebut package-private). Akses ini hanya memungkinkan akses dari dalam package yang sama.
class Helper { // class dengan akses default
void assist() { } // method dengan akses default
}Pilih tingkat akses paling terbatas yang tetap memungkinkan kodemu berfungsi. Ini melindungi datamu dan membuat kodemu lebih mudah dipelihara.
Tantangan
MudahMari buat sistem catatan Student yang menunjukkan cara modifier akses mengatur visibilitas di berbagai file.
Kamu akan membuat dua file untuk mengatur kodemu:
Student.java: Definisikan class Student dengan field yang menggunakan tingkat akses berbeda:- field
private:studentId(String), hanya dapat diakses di dalam class Student - field default (tanpa modifier):
grade(int), dapat diakses di dalam package yang sama - field
protected:name(String), dapat diakses di package yang sama dan subclass - field
public:school(String), dapat diakses di mana saja
publicbernamagetInfo()yang mengembalikan string dengan format:"[studentId] name - Grade grade at school"- field
Main.java: Buat object Student dan tunjukkan field mana yang dapat diakses langsung dari luar class. Cetak fieldschoolsecara langsung, lalu cetak hasilgetInfo()untuk menampilkan semua informasi siswa.
Kamu akan menerima empat input: studentId, name, grade, dan school (dalam urutan tersebut).
Output-mu harus terdiri dari dua baris: nama sekolah yang diakses secara langsung, diikuti informasi lengkap siswa dari method getInfo().
Coba sendiri
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Baca input
String studentId = scanner.nextLine();
String name = scanner.nextLine();
int grade = Integer.parseInt(scanner.nextLine());
String school = scanner.nextLine();
// TODO: Buat object Student dengan nilai input
// TODO: Cetak field school secara langsung (dapat diakses karena bersifat public)
// TODO: Cetak hasil getInfo() untuk menampilkan semua informasi siswa
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
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