溫馨提示×

Java成員變量訪問權(quán)限怎么設(shè)置

小樊
84
2024-10-12 03:41:51
欄目: 編程語言

在Java中,成員變量的訪問權(quán)限可以通過使用不同的關(guān)鍵字進行設(shè)置。以下是四種訪問修飾符:

  1. public:公共訪問級別,表示該成員變量可以從任何其他類訪問。
  2. protected:受保護訪問級別,表示該成員變量可以被同一個包內(nèi)的類以及所有子類訪問。
  3. private:私有訪問級別,表示該成員變量只能在其所在的類中訪問。
  4. 默認(無修飾符):如果沒有明確指定訪問修飾符,則默認為包級私有訪問級別,表示該成員變量只能被同一個包內(nèi)的類訪問。

以下是一個示例,展示了如何使用不同的訪問修飾符來設(shè)置成員變量的訪問權(quán)限:

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

public class AccessTypeDemo {
    // 公共訪問修飾符
    public int publicVar;

    // 受保護訪問修飾符
    protected int protectedVar;

    // 默認(包級私有)訪問修飾符
    int defaultVar;

    // 私有訪問修飾符
    private int privateVar;
}

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

public class AccessTypeDemoSubClass extends AccessTypeDemo {
    public void accessMembers() {
        // 訪問公共成員變量
        publicVar = 10;

        // 訪問受保護成員變量
        protectedVar = 20;

        // 無法直接訪問默認(包級私有)成員變量
        // defaultVar = 30; // 編譯錯誤

        // 訪問私有成員變量(通過公共方法)
        privateVar = 40;
        System.out.println("Private variable value: " + getPrivateVar());
    }

    // 公共方法,用于獲取私有成員變量的值
    public int getPrivateVar() {
        return privateVar;
    }
}

在上面的示例中,publicVarprotectedVar 可以在任何類中訪問,defaultVar 只能在同一包內(nèi)的類中訪問,而 privateVar 只能在 AccessTypeDemo 類中直接訪問。在子類 AccessTypeDemoSubClass 中,可以通過公共方法 getPrivateVar() 來訪問私有成員變量 privateVar

0