国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

訪問權限PPP(public、private、protected、default)之成員變量、成員變量權限解析

2019-11-15 01:06:28
字體:
來源:轉載
供稿:網友
訪問權限PPP(public、PRivate、protected、default)之成員變量、成員變量權限解析

首先,我們需要清楚一下方法是由哪些部分構成的:

[權限修飾符列表][別的修飾符列表] 返回值類型 方法名(參數列表){ 方法體;}

然后我們需要知道成員變量和成員方法訪問有幾種情況:1、當前包同一個類 2、當前包里面別的類 3、別的包里別的類 4、自己包繼承關系的類 5、從別的包里有繼承關系的類 

第一步先創建一個別的類的代碼,示例:

package com.java;public class admin{    //成員變量的訪問權限    public int i1 = 10;    protected int i2 = 20;    private int i3 = 30;    int i4 = 40;//default(默認)}

然后創建帶main方法的代碼,并創建同包內的class,示例:

package cn.java;import com.java.admin; public class PPP01{ //public class PPP01 extends Customer{ //public class PPP01 extends admin{     //成員變量的訪問權限    public int b1 = 10;    protected int b2 = 20;    private int b3 = 30;    int b4 = 40;     public static void main(String[] args){        //相同的包,不同的類,沒有繼承關系        Customer a = new Customer();//未繼承情況下運行        System.out.println( a.i1 );        System.out.println( a.i2 );        System.out.println( a.i3 );//報錯:i3可以在Customer中訪問private        System.out.println( a.i4 );        //相同的包,相同的類,沒有繼承關系        PPP01 b = new PPP01();        System.out.println( b.b1 );//都可以運行        System.out.println( b.b2 );        System.out.println( b.b3 );        System.out.println( b.b4 );        //相同的包,不同的類,有繼承關系        Customer c = new Customer();        System.out.println( c.i1 );        System.out.println( c.i2 );        System.out.println( c.i3 );//錯誤: i3可以在Customer中訪問private        System.out.println( c.i4 );        //不同的包,不同的類,沒有繼承關系        admin d = new admin();        System.out.println( d.i1 );//在未繼承狀態下運行        System.out.println( d.i2 );//錯誤: i2可以在admin中訪問protected        System.out.println( d.i3 );//錯誤: i3可以在admin中訪問private        System.out.println( d.i4 );//錯誤: i4在User中不是公共的; 無法從外部程序包中對其進行訪問        //不同的包,不同的類,有繼承關系        admin e = new admin();        System.out.println( e.i1 );        System.out.println( e.i2 );//錯誤: i2可以在admin中訪問protected        System.out.println( e.i3 );//錯誤: i3可以在admin中訪問private        System.out.println( e.i4 );//錯誤: i4在admin中不是公共的; 無法從外部程序包中對其進行訪問     } }class Customer{    //成員變量的訪問權限    public int i1 = 10;    protected int i2 = 20;    private int i3 = 30;    int i4 = 40;}

在不同情況下的運行可得出結果

----------------------成員變量的訪問權限------------------------- public private protected default當前包同一個類 可以 可以 可以 可以當前包里面別的類 可以 不可以 可以 可以別的包里別的類 可以 不可以 不可以 不可以自己包繼承關系的類 可以 不可以 可以(V) 可以(V)從別的包里有繼承關系的類 可以 不可以 可以(V) 不可以(x)

成員方法代碼和變量的代碼差不多,但是要注意,方法需要返回值return,運算后得出結論:

------------------------成員方法的訪問權限--------------------------- public private protected default當前包同一個類 可以 可以 可以 可以當前包里面別的類 可以 不可以 可以 可以別的包里別的類 可以 不可以 不可以 不可以自己包繼承關系的類 可以 不可以 可以(V) 可以(V)

從別的包里有繼承關系的類 可以 不可以 可以(v) 不可以(x)

根據以上結果,可得出結論:

   (1)protected:如果跨包的話,必須有繼承關系才可以,自己的包可以直接訪問不受影響

(2)default:跨包就不可以。

(3)在實例化子類變量的時候,可以訪問父類的成員變量,這才可繼承訪問權限

(4)如果在子類中,實例化父類的對象,訪問權限不變

(5)public:不管在成員變量還是成員方法中都可以訪問

  以上就是我的理解,請大家多多指導。

歡迎轉載,但請注明出處。

------http://www.survivalescaperooms.com/wing411/---------


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青岛市| 清苑县| 洞口县| 滦平县| 娄底市| 南康市| 墨玉县| 龙川县| 塘沽区| 淄博市| 乐平市| 将乐县| 马鞍山市| 加查县| 都匀市| 修水县| 彰化市| 北安市| 库尔勒市| 什邡市| 威宁| 福建省| 寻乌县| 泸溪县| 尼玛县| 江达县| 陇川县| 万宁市| 苏尼特左旗| 丹寨县| 大安市| 遵化市| 平邑县| 萨迦县| 永靖县| 深泽县| 岢岚县| 辉南县| 平和县| 和田市| 拉萨市|