Java基礎知識23--Java中的四種訪問權限:public、protected、包訪問、private


所謂訪問權限,指的就是本類中的成員變量、成員方法對其他類的可見性

Java中有四種訪問權限,分別是public、protected、包訪問權限(默認)、private,如果省略了訪問修飾符,那默認訪問權限為包訪問權限。
這四種權限從最大權限到最小權限分別是:
public > protected > 包訪問權限> private

1.類的成員變量和方法訪問權限

包訪問權限: 沒有任何修飾符的權限就是包訪問權限,意味着當前包的所有類都可以訪問這個成員,如表中所示,對於本包之外的類,這個成員就變成了private,訪問不了

public: 被public修飾的成員對任意一個類都是可用的,任何一個類都可以訪問到,通過操作該類的對象隨意訪問public成員

protected: 和private作用相當,唯一的區別是,繼承的類可以訪問protected成員,但不能訪問private成員。

private: 除了包含這個成員的類之外,所有類都無法訪問這個成員,相當於自我封閉,防止其他類改變或刪除這個方法。private修飾的屬性或方法是私有的,不能在聲明它的類的外部訪問。

使用案例:

Animal實體類

public class Animal {
    //定義私有成員變量
    private String name;
    private String age;
    //定義公有成員變量
    public String address;

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getAge() {
        return age;
    }

    public String getNameAndAge(){
        //類內部可以訪問私有成員變量
        return "name:"+name+"; age:"+age;
    }

    private void eat(){
        System.out.println(name+"正在吃飯....");
    }
}

測試代碼:

public class SeasonTest {
    public static void main(String[] args) {
        Animal animal=new Animal();
        animal.setAge("12");
        animal.setName("peter");
        animal.setAddress("tiantai");
        System.out.println("age:"+animal.getAge());
        System.out.println(animal.getNameAndAge());         System.out.println("address:"+animal.address); //通過類的對象訪問類的公有成員變量(public修飾)
        //System.out.println(animal.name);
        //animal.eat();
    }
}

2.類的訪問權限

Java中的訪問權限也可以用來修飾類。不過需要注意,對於普通類而言,類的訪問權限僅有public和包訪問權限

· 如果一個類聲明的時候用了public,則該類的類名必須與文件名一致,包括大小寫,如果不匹配,會有編譯錯誤

· 每個編譯單元(文件)都只能有一個public類

· 當然不帶public也是可以的,這時可以隨時對文件命名

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM