Rumah  >  Artikel  >  Java  >  Perkara yang perlu diberi perhatian apabila menggunakan pengubah suai akses untuk fungsi Java

Perkara yang perlu diberi perhatian apabila menggunakan pengubah suai akses untuk fungsi Java

WBOY
WBOYasal
2024-04-25 17:09:01593semak imbas

Pengubah kebenaran akses fungsi Java termasuk: awam, dilindungi, lalai dan peribadi. Langkah berjaga-jaga berikut perlu diikuti: Kelas bersarang hanya boleh mengakses ahli peribadi kelas luaran dalam subkelas mewarisi kebenaran akses kelas induk, tetapi tidak boleh mengurangkannya di bawah polimorfisme, apabila subkelas mengatasi fungsi kelas induk, kebenaran akses tidak boleh; lebih ketat. Pengubah suai lalai menjadikan fungsi kelihatan hanya dalam pakej yang sama. . Enkapsulasi dan keselamatan adalah kritikal. Artikel ini akan memperkenalkan langkah berjaga-jaga untuk menggunakan pengubah kebenaran akses fungsi dalam Java dan menggambarkannya melalui kes praktikal.

Java 函数的访问权限修饰符之使用时的注意事项Pengubah suai akses

Pengubah suai akses fungsi yang biasa digunakan di Java termasuk:

awam: Boleh diakses di mana-mana sahaja

dilindungi:

dalam pakej yang sama ault (pakej -peribadi): Hanya boleh diakses dalam pakej yang sama

peribadi:
    Hanya boleh diakses dalam kelas di mana ia ditakrifkan
  • Nota
  • Diperlukan apabila menggunakan pengubah akses
  • Nested Ikuti nota ini
  • :
  • Fungsi yang ditakrifkan dalam kelas bersarang hanya boleh mengakses ahli persendirian kelas luarnya.
  • Subkelas:
Fungsi dalam subkelas mewarisi hak akses kelas induk, tetapi tidak boleh mengurangkan hak akses kelas induk.

Polymorphism:

Subkelas boleh mengatasi fungsi kelas induk, tetapi kebenaran akses bagi fungsi yang diganti tidak boleh lebih ketat daripada kebenaran akses fungsi kelas induk.

    Keterlihatan Pakej:
  • Pengubah suai lalai juga boleh dipanggil keterlihatan pakej, yang bermaksud fungsi itu hanya boleh dilihat dalam kelas dalam pakej yang sama.
  • Kes praktikal
  • Menunjukkan contoh kod yang mengandungi dua kelas yang menggambarkan penggunaan pengubah akses:
  • // 外部类
    public class OuterClass {
        private int privateField;  // 私有字段
        protected int protectedField;  // 受保护字段
        int defaultField;  // 默认字段
        public int publicField;  // 公共字段
    
        // 私有方法
        private void privateMethod() {
            System.out.println("私有方法");
        }
        // 受保护方法
        protected void protectedMethod() {
            System.out.println("受保护方法");
        }
        // 默认方法
        void defaultMethod() {
            System.out.println("默认方法");
        }
        // 公共方法
        public void publicMethod() {
            System.out.println("公共方法");
        }
    }
    
    // 内部类
    class InnerClass {
        public static void main(String[] args) {
            OuterClass outer = new OuterClass();
    
            // 访问内部类中的公共字段
            System.out.println(outer.publicField);
    
            // 访问外部类中的默认字段(因为内部类和外部类在同一包中)
            System.out.println(outer.defaultField);
    
            // 无法访问外部类中的私有字段
            // System.out.println(outer.privateField);
    
            // 无法访问外部类中的受保护字段(因为内部类不是外部类的子类)
            // System.out.println(outer.protectedField);
    
            // 无法调用外部类中的私有方法
            // outer.privateMethod();
    
            // 可以调用外部类中的受保护方法
            outer.protectedMethod();
    
            // 可以调用外部类中的默认方法
            outer.defaultMethod();
    
            // 可以调用外部类中的公共方法
            outer.publicMethod();
        }
    }
    Dalam contoh ini:
  • OuterClaste>hanya boleh dikodkan >OuterClaste> diakses dalam <code>OuterClass. ProtectedField dalam OuterClass boleh diakses dalam OuterClass dan subkelasnya.
defaultField dalam OuterClass boleh diakses dari mana-mana kelas dalam pakej yang sama.

Bidang Awam dalam OuterClass boleh diakses dari mana-mana sahaja.

InnerClass boleh mengakses ahli awam, dilindungi dan lalai dalam OuterClass, tetapi bukan ahli persendirian.

Atas ialah kandungan terperinci Perkara yang perlu diberi perhatian apabila menggunakan pengubah suai akses untuk fungsi Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn