<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-144  評論-80  文章-1  trackbacks-0

    Public、private、protected顯示了三種類中的屬性和服務(wù)的類型,public是可以隨意訪問的、private是外界不能訪問的(顯示了數(shù)據(jù)的封裝性)、protected說明數(shù)據(jù)是受保護(hù)的。下面就來詳細(xì)講述一下這三個究竟有什么區(qū)別。

    首先要了解一下包的概念。有若干個類,它們相互之間有一定的關(guān)系,那么就可以定義一個包容納這些類,包不僅僅只能包含類,它可以擁有類、接口、構(gòu)件、節(jié)點、協(xié)作,包內(nèi)還可以包含包。

    現(xiàn)在就讓我們來具體討論一下這三個種類的不同之處。


     
    作為public的類和屬性是可以被外界任意調(diào)用的,無論是在類中,還是跨越類的訪問(如果不屬于同一個包,就要調(diào)用import語句,添加包名),這一點是非常好理解的。

           Private的屬性和方法是最自私的,它定義的屬性和方法只能在本類中使用,到類外,是無論如何都不能被使用的,如:

    class Date

    {

    private int day;

    public void tomorrow()

    {

    this.day = this.day + 1;

    }

    }

    public class DateUser

    {

    public static void main(String args[])

    {

    Date mydate = new Date();

    mydate.day = 21; //注意這句話是錯的

    }

    }

     


    在這個程序中,創(chuàng)建了一個Date類的對象mydate,這是可以的,但是由于類Date中的day是私有變量,所以,創(chuàng)建的這個對象mydate不能通過mydate.day來訪問這個屬性,如果在其它類中要使用這個私有變量,那么只能通過Date中的public的方法來訪問這個屬性,這樣,就很好的保證了數(shù)據(jù)的封裝性,就像面向?qū)ο笾刑岬降膱罂さ墓适乱粯樱徺I報刊的人不能自己伸手進(jìn)去拿報紙或是找零錢,而只能由報刊亭內(nèi)部人員來處理這些事情一樣。在上面的例子中,大家可以發(fā)現(xiàn),類Date中的默認(rèn)方法(Date())并沒有定義它的類型,這就意味著它是友好的,也就是意味著它在本包內(nèi)是public的,而在外包內(nèi)是private的。但是一旦把它的類型定義為private,那么連Date mydate = new Date()也會出錯,這是因為默認(rèn)的構(gòu)建器已經(jīng)被定義為private類型,也就是即使是本包內(nèi)的其他類也不能訪問了。


     

           對于protected就要考慮到包的概念,如果有兩個類,如:Date和DateUser兩個類分別位于不同的包內(nèi),而DateUser是繼承Date類的一個類,那么如果要使DateUser中的方法訪問Date中的方法或?qū)傩裕耸褂胕mport將包導(dǎo)入,還需要考慮所要訪問的方法和屬性是什么類型的,一般而言,跨包訪問,public的方法和屬性都一定可以訪問,但是考慮到如果將需要使用的方法和屬性都修改成public的話,那么就可以允許任何事物訪問,就不具有安全性,為了這個事情的考慮,添加了protected,如果將需要訪問的方法和屬性定義為protected,那么其它的類無法訪問,而外包的DateUser通過import就可以訪問這些屬性和方法了,即保證了數(shù)據(jù)的安全性,也保證了數(shù)據(jù)被很好的使用。范例如下:

           package a.b;

           public class Sample

           {

                  protected void doing();

    }

    import a.b.*;

    public class Sample1 extends Sample

    {

           public static void main(String args[])

           {

                  Sample1 x=new Sample1();

                  x.doing();

    }

    }

    posted on 2005-03-30 21:43 小力力力 閱讀(297) 評論(0)  編輯  收藏 所屬分類: JAVA
    主站蜘蛛池模板: 亚洲一区二区三区免费| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 国产a v无码专区亚洲av| 亚洲国产aⅴ成人精品无吗| 嫩草影院免费观看| 亚洲精品成a人在线观看夫| 18禁成年无码免费网站无遮挡| 免费一级e一片在线播放| 亚洲av中文无码乱人伦在线咪咕| 亚洲图片中文字幕| 校园亚洲春色另类小说合集| 久9这里精品免费视频| 亚洲av午夜福利精品一区人妖| 国产午夜精品久久久久免费视| 成全高清视频免费观看| 亚洲va在线va天堂va四虎| 亚洲国产一区二区三区在线观看| 全免费一级午夜毛片| 亚洲爱情岛论坛永久| 亚洲电影免费观看| 亚洲国产另类久久久精品小说| 精品亚洲成a人在线观看| xvideos亚洲永久网址| 国产亚洲玖玖玖在线观看| 毛片免费全部免费观看| 另类专区另类专区亚洲| 国产精品视频免费一区二区| 亚洲男同gay片| 亚洲美女高清一区二区三区| 在线观看特色大片免费网站| 亚洲国产模特在线播放| 中国国语毛片免费观看视频| 国产成人3p视频免费观看| 一级人做人a爰免费视频| 亚洲A∨无码无在线观看| 最近最好的中文字幕2019免费| 男男gvh肉在线观看免费| 亚洲成年人在线观看| 成人免费无码大片a毛片| 91免费国产视频| 亚洲乱码卡三乱码新区|