Rumah >Java >javaTutorial >Hubungan antara pengubah akses fungsi Java dan akses medan

Hubungan antara pengubah akses fungsi Java dan akses medan

王林
王林asal
2024-04-25 18:09:021031semak imbas

Pengubah akses fungsi Java mempengaruhi aksesnya kepada medan dalam kelas: fungsi awam boleh mengakses semua medan, tanpa mengira kebenaran akses medan. Fungsi yang dilindungi hanya boleh mengakses medan dengan akses yang dilindungi atau awam. Fungsi lalai hanya boleh mengakses medan dengan akses lalai atau awam. Fungsi peribadi hanya boleh mengakses medan dengan akses peribadi.

Java 函数的访问权限修饰符之与字段访问的联系

Sambungan antara pengubah akses fungsi Java dan akses medan

Pengubah suai akses fungsi Java boleh menyekat akses mereka kepada medan dalam kelas. Memahami sambungan ini adalah penting untuk mengekalkan keselamatan dan kebolehselenggaraan kod anda.

Pengubah kebenaran akses

Terdapat empat pengubah kebenaran akses fungsi dalam Java:

  • awam: Benarkan semua kelas mengakses fungsi.
  • dilindungi: Benarkan kelas dan subkelas yang dimiliki oleh pakej yang sama untuk mengakses fungsi.
  • default (tiada pengubah suai): Hanya kelas yang dimiliki oleh pakej yang sama dibenarkan untuk mengakses fungsi tersebut.
  • peribadi: Benarkan kelas itu sendiri mengakses fungsi.

Pautan Akses Medan

Pengubah akses fungsi mempengaruhi aksesnya kepada medan dalam kelas:

  • Jika fungsi awam, ia boleh mengakses semua medan, tanpa mengira hak akses medan.
  • Jika sesuatu fungsi dilindungi, hanya medan dengan hak akses dilindungi atau awam boleh diakses.
  • Jika fungsi adalah lalai, hanya medan dengan akses lalai atau awam boleh diakses.
  • Jika fungsi itu pribadi, hanya medan dengan akses pribadi sahaja boleh diakses.

Kes Praktikal

Pertimbangkan kelas berikut:

public class MyClass {
    private int privateField;
    protected int protectedField;
    int defaultField;
    public int publicField;

    public void publicMethod() {
        // 可以访问所有字段
        System.out.println(privateField);
        System.out.println(protectedField);
        System.out.println(defaultField);
        System.out.println(publicField);
    }

    protected void protectedMethod() {
        // 可以访问 protected 和 public 字段
        System.out.println(protectedField);
        System.out.println(publicField);
    }

    void defaultMethod() {
        // 可以访问 default 和 public 字段
        System.out.println(defaultField);
        System.out.println(publicField);
    }

    private void privateMethod() {
        // 只能访问 private 字段
        System.out.println(privateField);
    }
}

Dalam kes ini:

  • publicMethod() boleh mengakses semua medan kerana ia adalah kaedah awam. publicMethod() 可以访问所有字段,因为它是公共方法。
  • protectedMethod() 可以访问 protectedFieldpublicField,因为它是受保护方法。
  • defaultMethod() 可以访问 defaultFieldpublicField,因为它是默认为包内可见的方法。
  • privateMethod() 只能访问 privateField
  • protectedMethod() mempunyai akses kepada protectedField dan publicField kerana ia adalah kaedah yang dilindungi.
🎜defaultMethod() mempunyai akses kepada defaultField dan publicField kerana kaedah ini boleh dilihat dalam pakej secara lalai. 🎜🎜privateMethod() hanya boleh mengakses privateField kerana ia adalah kaedah peribadi. 🎜🎜

Atas ialah kandungan terperinci Hubungan antara pengubah akses fungsi Java dan akses medan. 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