日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中的访问限制符

發布時間:2024/1/17 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的访问限制符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

package:包訪問權限

如果不提供任何訪問權限修飾詞,則意味著它是包訪問權限

默認訪問權限沒有任何關鍵字,但通常是指包訪問權限(有時也表示為friendly)。這意味著包中所有其他類都可以訪問這個成員或方法,但是這個包之外的所有類不可以訪問

例:

com.notes.packages.test.Info

package com.notes.packages.test;

public class Info {

??? void print() { System.out.println("default method -- print()"); }

}

?

com.notes.packages.test.PublicDemo01

package com.notes.packages.test;

public class PublicDemo01 {

??? public static void main(String[] args) {

??????? Info x = new Info();

??????? x.print();

??? }

}

PublicDemo01和Info在同一個包下,可以訪問Info的default級別的方法——print()。

?

com.notes.packages.PublicDemo02

package com.notes.packages;

import com.notes.packages.test.Info;

public class PublicDemo02 {

??? public static void main(String[] args) {

??????? Info x = new Info();

??????? // x.print(); // Error

??? }

}

PublicDemo02和Info不在一個包下,不可以訪問Info的包訪問權限級別的方法——print()。

public:接口訪問權限

使用public關鍵字,就意味著被聲明的成員或方法對所有人都是可以訪問的

例:如果將default級別權限例子中的print()方法權限設為public,則PublicDemo02可以訪問。

package com.notes.packages.test;

public class Info {

??? public void print() { System.out.println("public method -- print()"); }

}

private:無法訪問

使用private關鍵字,就意味著被聲明的成員或方法,除了本類,其他任何類都無法訪問

應用場景:單例模式

protected:繼承訪問權限

新類(稱之子類或派生類)通過繼承可以復用一個現有類(稱之父類或基類),然后擴展基類的成員、方法。有時,基類的創建者會希望某個特定成員,將它的訪問權限賦予派生類而不是所有類。public無法做到這一點,為此,引入了protected來完成這一工作。protected也提供包訪問權限,也就是說,派生類以及相同包內的其他類都可以訪問protected成員或方法

例:子類繼承父類后,可以訪問父類的protected成員。

class Father {

??? private String a = "private";

??? protected String b = "protected";

??? public String c = "public";

};

?

class Son extends Father {

??? public void print() {

??????? // System.out.println("element a:" + super.a); // Error

??????? System.out.println("element b:" + super.b);

??????? System.out.println("element c:" + super.c);

??? }

}

?

public class ProtectedDemo01 {

??? public static void main(String args[]) {

??????? Son sub = new Son();

??????? sub.print();

??? }

};

總結

前面各個例子中展示了類的成員、方法都可以用各種權限修飾詞來修飾。

除此之外,還有一些需要注意的點:

(1)???? 靜態成員、靜態方法的權限修飾詞的用法和普通成員、方法一樣。

(2)???? 類雖然也可以被修飾詞修飾,但是不可以用privateprotected兩個權限修辭詞。

(3)???? 有些書中將包訪問權限又叫做默認訪問權限。個人不建議這么去記,因為這很容易與Java Se8中新特性——default關鍵字混淆。這個關鍵字只能用于Interface,作用是允許程序員在Interface中定義接口的默認具體實現(以往的JDK版本是不允許這樣的,你只能在接口中聲明方法)。

???????????

轉載于:https://www.cnblogs.com/coffeerun/p/5728492.html

總結

以上是生活随笔為你收集整理的Java中的访问限制符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。