Java Access Modifier (Access Controller)
Java mengontrol hak akses dan fungsi kelas, properti, dan metode lainnya melalui pengubah, biasanya ditempatkan di ujung depan pernyataan. Misalnya:
kelas publik kelas kelas {// body of class} private boolean myflag; static final double weeks = 9.5; static final int boxwidth static = 42; public s tatic void main (string [] argumen) {// tubuh metode}Ada banyak pengubah di Jawa, dibagi menjadi pengubah akses dan pengubah non-akses. Bagian ini hanya memperkenalkan pengubah akses, dan pengubah non-akses akan diperkenalkan nanti.
Pengubah akses, juga dikenal sebagai karakter kontrol akses, lihat kata kunci yang dapat mengontrol hak penggunaan kelas, variabel anggota, dan metode.
Pengontrol akses adalah konsep penting dalam pemrograman berorientasi objek dan dapat digunakan untuk melindungi akses ke kelas, variabel, metode, dan konstruktor.
Java mendukung empat izin akses yang berbeda:
Publik: Publik
Kelas, metode, konstruktor, dan antarmuka yang dinyatakan sebagai publik dapat diakses oleh kelas lain.
Jika beberapa kelas publik yang diakses oleh satu sama lain didistribusikan dalam paket yang tidak digunakan, Anda perlu mengimpor paket di mana kelas publik yang sesuai berada. Karena warisan kelas, semua metode publik dan variabel kelas dapat diwarisi oleh subkelasnya.
Metode berikut menggunakan kontrol akses publik:
public static void main (string [] argumen) {// body of method} Metode utama () dari program Java harus diatur ke publik, jika tidak, juru bahasa Java tidak akan dapat menjalankan kelas.
Dilindungi: Dilindungi
Variabel, metode dan konstruktor yang dinyatakan sebagai dilindungi dapat diakses oleh kelas lain dalam paket yang sama, atau oleh subkelas dalam paket yang berbeda.
Pengubah akses yang dilindungi tidak dapat memodifikasi kelas dan antarmuka.
Subkelas dapat mengakses metode dan variabel yang dinyatakan oleh pengubah yang dilindungi, sehingga mereka dapat melindungi kelas yang tidak terkait dari menggunakan metode dan variabel ini.
Kelas induk berikut menggunakan pengubah akses yang dilindungi, dan subkelas membebani metode kulit kulit dari kelas induk.
Public Class Dog {Protected Void Bark () {System.out.println ("Wow, Don't Come Over"); , Saya sangat takut, jangan ikuti saya ");}} Jika metode kulit kulit () dinyatakan sebagai pribadi, maka kelas selain anjing tidak akan dapat mengakses metode tersebut. Jika bark () dinyatakan publik, maka semua kelas dapat mengakses metode ini. Jika kita ingin metode ini hanya terlihat oleh subclass dari kelasnya, dinyatakan sebagai metode yang dilindungi.
Pribadi: Pribadi
Pengubah akses pribadi adalah tingkat akses paling ketat, sehingga metode, variabel dan konstruktor yang dinyatakan sebagai pribadi hanya dapat diakses oleh kelas tempat mereka berada, dan kelas dan antarmuka tidak dapat dinyatakan sebagai pribadi.
Variabel yang dinyatakan sebagai jenis akses pribadi hanya dapat diakses oleh kelas eksternal melalui metode pengambil/setter publik di kelas.
Penggunaan pengubah akses pribadi terutama digunakan untuk menyembunyikan detail implementasi kelas dan melindungi data kelas.
Kelas berikut menggunakan pengubah akses pribadi:
Public Dog {Private String Name; (int usia) {this.age = usia;Dalam contoh, variabel nama dan usia di kelas anjing adalah variabel pribadi, sehingga kelas lain tidak dapat secara langsung memperoleh dan mengatur nilai variabel. Untuk memungkinkan kelas lain memanipulasi variabel, dua pasang metode publik, getName ()/setName () dan getage ()/setage () didefinisikan, yang digunakan untuk memperoleh dan mengatur nilai variabel pribadi.
Ini adalah kata kunci di Java.
Metode mendefinisikan untuk mengakses variabel pribadi di kelas adalah kebiasaan untuk menyebutkannya seperti ini: awalan "dapatkan" atau "set" dalam nama variabel, dan memanfaatkan surat awal variabel. Misalnya, metode untuk mendapatkan nama variabel pribadi adalah getName (), dan metode untuk mengatur nama adalah setName (). Metode -metode ini sering digunakan dan memiliki nama spesifik, yang disebut metode pengambil dan setter.
Default: Tidak ada kata kunci yang digunakan
Tidak ada pengubah yang dinyatakan sebagai properti dan metode yang terlihat oleh kelas dalam paket yang sama. Semua variabel dalam antarmuka secara implisit dinyatakan sebagai final statis publik, sedangkan metode dalam antarmuka bersifat publik secara default.
Seperti yang ditunjukkan dalam contoh berikut, definisi kelas, variabel, dan metode tidak menggunakan pengubah:
class dog {string name; Master, saya lapar ");}}Kontrol dan warisan akses
Harap perhatikan aturan berikut untuk warisan (pembaca yang tidak memahami konsep warisan dapat dilewati di sini, atau mengklik java warisan dan pratinjau polimorfik):
Metode yang dinyatakan sebagai publik di kelas induk juga harus publik di kelas anak.
Metode dinyatakan sebagai dilindungi di kelas induk dinyatakan sebagai dilindungi atau publik di kelas anak. Tidak dapat dinyatakan sebagai pribadi.
Metode yang dinyatakan secara default pengubah di kelas induk dapat dinyatakan sebagai pribadi di subkelas.
Metode yang dinyatakan sebagai pribadi di kelas induk tidak dapat diwarisi.
Cara menggunakan karakter kontrol akses
Karakter Kontrol Akses memungkinkan kami untuk dengan mudah mengontrol izin kode:
Ketika Anda perlu membuat kelas, Anda menulis akses ke semua kelas lain, Anda dapat mendeklarasikan kontrol akses kelas sebagai publik.
Ketika Anda perlu membuat kelas Anda hanya dapat diakses oleh kelas dalam paket Anda sendiri, karakter kontrol akses dapat dihilangkan.
Ketika diperlukan untuk mengontrol data anggota di kelas, karakter kontrol akses data anggota di kelas ini dapat diatur ke publik, dilindungi, atau dihilangkan.
Lingkup variabel Java <br /> di java, ruang lingkup variabel dibagi menjadi empat level: tingkat kelas, level instance objek, level metode, dan level blok.
Variabel tingkat kelas juga disebut variabel global atau variabel statis. Variabel tingkat kelas sudah ada setelah definisi kelas, menempati ruang memori, dapat diakses melalui nama kelas, dan tidak perlu dipakai.
Variabel level instance objek adalah variabel anggota.
Variabel tingkat metode adalah variabel yang didefinisikan dalam metode, yang merupakan variabel lokal.
Variabel tingkat blok adalah variabel yang didefinisikan dalam blok. Blok mengacu pada kode yang dikelilingi oleh kawat gigi, misalnya:
{int usia = 3; Kesalahan, variabel usia dan nama system.out.println (name + "sudah" + usia + "tahun"); menjelaskan:
Selain mengakses variabel tingkat metode, metode juga dapat mengakses variabel tingkat kelas dan tingkat instance.
Variabel tingkat tingkat dan tingkat instan dapat diakses di dalam blok.
Metode dan variabel level blok harus ditampilkan diinisialisasi jika tidak mereka tidak dapat diakses.
Kode demo:
Demo Kelas Publik {Public Static String Name = "Weixueyuan"; test1 () {int j = 3; // variabel tingkat metode if (j == 3) {int k = 5; hanya dapat mengakses system.out.println ("name =" + name + ", i =" + i + ", j =" + j);} public static void main (string [] args) {// no create sebuah objek, akses variabel tingkat kelas.out.println (demo.name); // Buat objek dan aksesnya metode demo t = demo baru (); t.test1 ();}} Hasil Menjalankan:
Micro Academy Name = Micro Academy, I = 0, J = 3