java四种权限修饰符 (private 、default(缺省)、prote、public)适用范围
生活随笔
收集整理的這篇文章主要介紹了
java四种权限修饰符 (private 、default(缺省)、prote、public)适用范围
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
驗證測試
(1)定義一個order 類 ,其中包涵四種權限修飾符屬性 以及方法
private int orderPrivate; int orderDefault; protected int orderProtect; public int orderPublic;如;
d
package day07;/*** @author chao* @create -05-2022-05-31-14:58*/ public class Order {private int orderPrivate;int orderDefault;protected int orderProtect;public int orderPublic;private void methodPrivate(){orderPrivate=1;orderDefault=2;orderProtect=3;orderPublic=4;}void methodDefault(){orderPrivate=1;orderDefault=2;orderProtect=3;orderPublic=4;}protected void methodProtect(){orderPrivate=1;orderDefault=2;orderProtect=3;orderPublic=4;}public void methodPublic(){orderPrivate=1;orderDefault=2;orderProtect=3;orderPublic=4;} }(2)同一個包進行測試
測試一
package day07; package day07;/*** @author chao* @create -05-2022-05-31-15:02*/ public class OrderTest {public static void main(String[] args) {Order order=new Order();order.orderPublic=1;order.orderProtect=2;order.orderDefault=3;//出了Oder類 ,私有結構不可以被調用// order.orderPrivate=3;//屬性不可見,無法調用//order.methodPrivate(); //方法也不可以調用order.methodDefault();order.methodProtect();order.methodPublic();} }結論:可以發現同一個包,但是出了Oder類 ,無法使用Private? 結構和屬性
(3)測試二
在不同包進行測試 ,但是該測試繼承了Order
package day28;import day07.Order;/*** @author chao* @create -05-2022-05-31-15:25*/ public class SubOrder extends Order {public void method(){orderPublic=1;orderProtect=2;methodPublic();methodProtect();//在不同包的子類中,不能調用oder類中聲明為private和 缺省結構和屬性// orderPrivate=3; // orderDefault=4; // // methodPrivate(); // methodDefault();} }結論:在不同的包中,存在繼承關系 時,不能夠調用? Order類聲明的private 和 default缺省結構和屬性
(4)測試三
在不同包并且沒有繼承關系
package day06;import day07.Order;/*** @author chao* @create -05-2022-05-31-15:09*/ public class OrderTest {public static void main(String[] args) {Order order=new Order();order.orderPublic=1;order.methodPublic();//不同包下也不是子類 沒有繼承Order 不能調用protect 屬性結構和方法 // order.orderProtect=2; // order.methodProtect();//出了day07包 ,在day06包使用default結構無法使用// order.orderDefault=2;//can not be accessed from outside package//出了Oder類 ,私有結構不可以被調用// order.orderPrivate=3;//屬性不可見,無法調用//order.methodPrivate(); //方法也不可以調用// order.methodDefault();//can not be accessed from outsi} }結論:在不同的包,也不具有繼承關系時 ,只能直接調用 Order類中聲明為public的屬性 與結構?
(5)測試四;
?
當出了同一個模塊,在不同模塊調用Order類時,
?
此時創建對象直接提示報錯 ,提示Add dependency on module "day04",此時無法使用order類
,此時需要用到jdk9新特性 中的模塊化系統 ,使用模塊依賴才能使用Oder類。
?
總結:(1)出了當前類 :無法使用private修飾符修飾的屬性與結構?
? ? ? ? (2) 出了同一個包,但具有繼承關系? ?;無法使用??privateh和 default修飾符修飾的屬性與結構?
(3)出了同一個包,并且無繼承關系? ? ? 只能使用 public修飾符修飾的屬性與結構
(4)出了同一模塊? ?即無法使用 Order ,無法創建Order對象
總結
以上是生活随笔為你收集整理的java四种权限修饰符 (private 、default(缺省)、prote、public)适用范围的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 网关控制家居_Python
- 下一篇: Exploiting Visual Ar