国产探花免费观看_亚洲丰满少妇自慰呻吟_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://m.survivalescaperooms.com/wing411/---------


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 温州市| 邓州市| 葫芦岛市| 界首市| 定远县| 无极县| 武定县| 沛县| 蒲江县| 阿拉善盟| 南岸区| 香港 | 利津县| 西城区| 夹江县| 惠水县| 大埔区| 鸡东县| 古交市| 洛浦县| 水富县| 夏河县| 大邑县| 桦甸市| 惠东县| 赣榆县| 广东省| 东光县| 天长市| 温宿县| 清原| 常州市| 梅河口市| 沂南县| 营山县| 聊城市| 项城市| 承德市| 金堂县| 永宁县| 漳浦县|