亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

舉例詳解Java中的訪問權(quán)限修飾符

 更新時間:2015年08月20日 11:06:19   作者:damotiansheng  
這篇文章主要介紹了舉例詳解Java中的訪問權(quán)限修飾符,是Java入門學習中的基礎(chǔ)知識,需要的朋友可以參考下

訪問權(quán)限符:
(1)public:
對于成員來說:任何其他類都可以訪問它們,不管在同一個包中還是在另外的包中。
對于類來說:    也是一樣。
(2)friendly:
對于成員老說:如果一個類的成員沒有任何權(quán)限修飾,那么它門就是缺省包訪問權(quán)限,用friendly來表示,注

意friendly不是Java中的關(guān)鍵字,這里是個人喜歡的方式用它表示而已。同一個包內(nèi)其它類可以訪問,但包外

就不可以。對于同一個文件夾下的、沒有用package的classes,Java會自動將這些classes初見為隸屬于該目錄

的default package,可以相互調(diào)用class中的friendly成員。如以下兩個class分別在同一個文件夾的兩個文件

中,雖然沒有引入package,但隸屬于相同的default package。

   class Sundae{
   //以下兩個方法缺省為friendly
   Sundae(){}
   Void f() {System.out.println(“Sundae.f()”);
   }
   public class IceCream{
   public static void main(String[] args){
   Sundae x = new Sundae();
   x.f();
   }
   }

對于類來說:同一個包中的類可以用。總之,類只可以聲明為public或者friendly。
(3)private:
對于對于成員來說:只能在該成員隸屬于的類中訪問。

class Sundae{
   private Sundae(){}//只能在Sundae class中被調(diào)用
   Sundae(int i) {}
   static Sundae makASundae() {
   return new Sundae();
   }
   }
   public class IceCream{
   public static void main(String[] args){
   // Sundae class中構(gòu)造函數(shù)Sundae()是private,
   // 所以不能用它進行初始化
   //Sundae x = new Sundae();
   Sundae y = new Sundae(1);//Sundae(int)是friendly,可以在此調(diào)用
   Sundae z = Sundae.makASundae();
   }
   }

對于類來說:類不可以聲明為private。

(4)protected:
對于對于成員來說:相同包中的類可以訪問(包訪問權(quán)限);基類通過protected把基類中的成員的訪問權(quán)限賦予派生類不是所有類(派生類訪問權(quán)限)。

(5)default(默認權(quán)限)
  類,數(shù)據(jù)成員,構(gòu)造方法,方法成員,都能夠使用默認權(quán)限,即不寫任何關(guān)鍵字。默認權(quán)限即同包權(quán)限,同包權(quán)限的元素只能在定義它們的類中,以及同包的類中被調(diào)用。

例子:package c05.local;

import pack1.Cookie;
//注意:在這里ChocolateChip繼承了類Cookie,按道理bite()方法也在
//ChocolateChip中,可以用x.bite直接調(diào)用,但是不可以的,因為類ChocolateChip
//和Cookie類不在一個包中,各自具有包訪問權(quán)限,為了能夠使用x.bite()必須要把
//Cookie方法的訪問權(quán)限換成public或者protected,但是一旦換成public所有的人就
//可以訪問了,這樣達不到隱私的要求,所以設(shè)置成protected最好,既可以順利訪問,也可以
//避免外面的類調(diào)用,保護好隱私的作用
public class ChocolateChip extends Cookie {
 
  public ChocolateChip() {
   System.out.println("ChocolateChip constructor");
  }
  public static void main(String[] args) {
   ChocolateChip x = new ChocolateChip();
   x.bite(); // Can't access bite
  
  }
} ///:~
package pack1;

public class Cookie {
public Cookie()
{
System.out.println("Cookie constructor");
}

protected void bite(){System.out.println("bite");}

}


對于類來說:類不可以聲明為protected

 

對于類的權(quán)限修飾,下面有更好的解釋:

Class類的訪問權(quán)限:
public:可以供所有的類訪問。
默認:默認可以稱為friendly但是,java語言中是沒有friendly這個修飾符的,這樣稱呼應(yīng)該是來源于c++。默認的訪問權(quán)限是包級訪問權(quán)限。
         即如果寫了一個類沒有寫訪問權(quán)限修飾符,那么就是默認的訪問權(quán)限,同一個包下的類都可以訪問到,即使可以實例化該類
         (當然如果這個類不具有實例化的能力除外,比如該類沒有提供public的構(gòu)造函數(shù))。

說明:
       1、每個編譯單元(類文件)都僅能有一個public class
       2、public class的名稱(包含大小寫)必須和其類文件同名。
       3、一個類文件(*.java)中可以不存在public class。
        這種形式的存在的場景:如果我們在某個包內(nèi)撰寫一個class,僅僅是為了配合同包內(nèi)的其他類工作,而且
       我們不想再為了撰寫說明文檔給客戶(不一定是現(xiàn)實意義的客戶,可能是調(diào)用這個類的類)看而傷腦筋,而且有可能過一段時間之后
       有可能會徹底改變原有的做法,并完全舍棄舊版本,以全新的版本代替。
       4、class不可以是private和protected。
       5、如果不希望那個任何產(chǎn)生某個class的對象,可以將該類得所有構(gòu)造函數(shù)設(shè)置成private。但是即使這樣也可以生成該類的對象,就是class的static的成員(屬性和方法)可以辦到。

綜合示例:
First.java:

package Number; 
import Test.*; 
 
public class Frist extends Test 
{ 
protected String s1 = "你好"; 
public static void main( String[] args) 
{ 
String s2 = "java"; 
//System.out.println(s1); 
System.out.println(s2); 
 
Frist t = new Frist(); 
System.out.println(t.s); 
t.show(); 
return; 
} 
 
} 
 
Test.java: 
package Test; 
 
 
public class Test  
{ 
protected String s = "hello test"; //可以被同包中的類訪問以及子類訪問,該子類可以是與包Test不同 
public void show() 
{ 
Test1 t1 = new Test1(); 
return; 
} 
 
 
} 
 
class Test1 
{ 
Test1() 
{ 
Test t = new Test(); 
System.out.println(t.s); 
} 
} 

輸出: 

java 
hello test 
hello test 

相關(guān)文章

  • 設(shè)計模式之模版方法模式_動力節(jié)點Java學院整理

    設(shè)計模式之模版方法模式_動力節(jié)點Java學院整理

    這篇文章主要介紹了設(shè)計模式之模版方法模式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java替換int數(shù)組中重復(fù)數(shù)據(jù)的方法示例

    Java替換int數(shù)組中重復(fù)數(shù)據(jù)的方法示例

    這篇文章主要介紹了Java替換int數(shù)組中重復(fù)數(shù)據(jù)的方法,涉及java針對數(shù)組的遍歷、轉(zhuǎn)換、判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • SpringBoot攔截器的使用

    SpringBoot攔截器的使用

    這篇文章主要給大家分享的是SpringBoot攔截器的使用,攔截器通常通過動態(tài)代理的方式來執(zhí)行。攔截器的生命周期由IoC容器管理,可以通過注入等方式來獲取其他Bean的實例,使用更方便,下面文章的詳細內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • java編程實現(xiàn)簡單的網(wǎng)絡(luò)爬蟲示例過程

    java編程實現(xiàn)簡單的網(wǎng)絡(luò)爬蟲示例過程

    這篇文章主要為大家介紹了如何使用java編程實現(xiàn)一個簡單的網(wǎng)絡(luò)爬蟲示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • Java Condition條件變量提高線程通信效率

    Java Condition條件變量提高線程通信效率

    這篇文章主要介紹了Java Condition條件變量提高線程通信效率,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • mybatis trim標簽的使用詳解

    mybatis trim標簽的使用詳解

    這篇文章主要介紹了mybatis trim標簽的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Maven入門之使用Nexus搭建Maven私服及上傳下載jar包

    Maven入門之使用Nexus搭建Maven私服及上傳下載jar包

    這篇文章主要介紹了Maven入門之使用Nexus搭建Maven私服及上傳下載jar包,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Java創(chuàng)建數(shù)組的幾種方式總結(jié)

    Java創(chuàng)建數(shù)組的幾種方式總結(jié)

    下面小編就為大家?guī)硪黄狫ava創(chuàng)建數(shù)組的幾種方式總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Spring?Boot自動配置的原理及@Conditional條件注解

    Spring?Boot自動配置的原理及@Conditional條件注解

    這篇文章主要介紹了Spring?Boot自動配置的原理及@Conditional條件注解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的朋友可以參考一下
    2022-07-07
  • 使用Java將字符串在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換

    使用Java將字符串在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換

    大家都知道在一些情況下,我們需要特殊的編碼格式,如:UTF-8,但是系統(tǒng)默認的編碼為ISO-8859-1,遇到這個問題,該如何對字符串進行兩個編碼的轉(zhuǎn)換呢,下面小編給大家分享下java中如何在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換,感興趣的朋友一起看看吧
    2021-12-12

最新評論