溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解 Java 的 public access modifier

發布時間:2025-02-08 23:24:05 來源:億速云 閱讀:143 作者:小樊 欄目:編程語言

在Java中,訪問修飾符(access modifier)決定了類、變量、方法和構造函數的可見性。public是Java中最寬泛的訪問級別,它有以下特點:

  1. 公開訪問:被聲明為public的類、方法、變量或構造函數可以從任何其他類訪問,無論這些類是在同一個包內還是在不同的包內。

  2. 包內訪問:如果沒有使用public修飾符,那么類、方法或變量只能在同一個包內的其他類訪問。

  3. 默認訪問級別(也稱為包私有):如果既沒有使用public修飾符也沒有使用其他訪問修飾符(如private或protected),則默認為包私有。這意味著它們只能在同一個包內的類訪問。

  4. 受保護訪問級別(protected):protected修飾符允許類、方法或變量被同一個包內的類以及所有子類訪問,無論這些子類是否在同一個包內。

下面是一個簡單的例子來說明不同訪問修飾符的效果:

// 文件名:Example.java
package com.example;

public class Example {
    public int publicVar = 10; // 可以在任何地方訪問
    int defaultVar = 20;   // 只能在同一個包內的類訪問
}

package com.example.subpackage;

import com.example.Example;

class SubpackageClass extends Example {
    void accessMembers() {
        publicVar = 30; // 正確:可以訪問public成員
        defaultVar = 40; // 錯誤:不能在子類中直接訪問默認訪問級別的成員
    }
}

package com.otherpackage;

import com.example.Example;

class OtherPackageClass {
    void accessMembers() {
        Example example = new Example();
        example.publicVar = 50; // 正確:可以訪問public成員
        // example.defaultVar = 60; // 錯誤:不能在不同包的類中訪問默認訪問級別的成員
    }
}

在這個例子中,Example類有一個public變量publicVar和一個默認訪問級別的變量defaultVar。SubpackageClassExample的子類,位于同一個包內,它可以訪問publicVar但不能直接訪問defaultVar。OtherPackageClass位于不同的包內,它可以訪問publicVar但不能訪問defaultVar。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女