最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java編程訪問權(quán)限的控制代碼詳解

 更新時(shí)間:2018年01月26日 09:20:06   作者:iaiti  
這篇文章主要介紹了Java編程訪問權(quán)限的控制代碼詳解,涉及包名,公共的和私有的等相關(guān)內(nèi)容,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文研究的主要是Java編程訪問權(quán)限的控制的相關(guān)內(nèi)容,具體介紹如下。

之前沒去注意的修飾符,一般變量前面沒添加,一個(gè)是不知道有什么用,一個(gè)是懶,后面遇到項(xiàng)目的時(shí)候就會發(fā)現(xiàn)私有和公有區(qū)別還是很大的。

(1)首先是包名

使用一個(gè)類的時(shí)候,例如集合類,就需要引入這個(gè)包,然后再使用該包下面的類。如:

package com.myown.iaiti; 
 
public class Print { 
  static void print(String s){ 
    System.out.println(s); 
  } 
} 

自定義的包,通過引入自己的包,以后你就可以使用自己寫的方法進(jìn)行字符串的打印。之前試過將自己包的路徑設(shè)進(jìn)CLASSPATH中,那么在其他目錄編譯,不需要將包放進(jìn)該目錄,也可以正常運(yùn)行,不然的話是找不到JAR包的。

(2)public

public,公共的,以前的老師經(jīng)常用老子來比喻,這是公共的東西,老子給你用,public緊跟數(shù)據(jù)成員,說明對每個(gè)人都是可用的。

(3)private

private,私有的,老子的私有財(cái)產(chǎn),你不要動它,除了包里含有這個(gè)數(shù)據(jù)成員的類可以用之外,其他類不能使用,這部分是設(shè)計(jì)者本身不想給外人看和修改的。

public class Print { 
  public static void main(String[] args) { 
    GetIt g = new GetIt(); 
  } 
} 
 
 class GetIt{// 注意 一個(gè)文件只能有一個(gè)公共類 如果你想在 
   //前面加上public 那么就不要和Print寫在同一個(gè)文件 
  private GetIt(){} 
} 

The constructor GetIt() is not visible,不可見,看出用處了吧,單例模式也是這么用的,控制對象的創(chuàng)建。

單例模式的應(yīng)用:

class A{ 
  private A(){}  
  private static A a = new A();  
  public static A getInstace(){ 
    return a; 
  } 
} 

其他的類不能通過new來創(chuàng)建對象,因?yàn)闃?gòu)造器被private所修飾,用處在于,當(dāng)這個(gè)A類極為復(fù)雜,耗內(nèi)存的時(shí)候,我需要嚴(yán)格控制A對象的創(chuàng)建。既然舉了單例,順便就把單例給講了。之前看過一些人寫的,實(shí)在太經(jīng)典,太厲害了。

上面那種是屬于餓漢式,就是一來就幫你new出來,以后new的時(shí)候就直接用,不存在線程問題,缺點(diǎn)是放著如果沒用的話就是資源浪費(fèi)。

懶漢式

public class A {     
   private A(){ }   
   
   private static A a;   
   public static A getInstance(){   
     if(a == null){   
       return a = new A();   
     }else{   
       return a;   
     }   
   }   
 } 

用的時(shí)候才幫你new,為null才new,但是存在線程問題,加上synchronized,但是效率降低,因?yàn)槎嗑€程的話,其中有一個(gè)在用的話,就會霸占著。

完美的方法是結(jié)合兩者:

public class A { 
  // 私有靜態(tài)內(nèi)部類, 只有當(dāng)有引用時(shí), 該類才會被裝載 
  private static class LazyA { 
    public static A A = new A(); 
  } 
  public static A getInstance() { 
    return LazyA.A; 
  } 
} 

前看不懂這個(gè)所謂的靜態(tài)內(nèi)部類,作用是,既可以做到延時(shí)加載,因?yàn)橹挥挟?dāng)使用的時(shí)候才會去new,用getInstace方法,不存在多線程問題是因?yàn)?,靜態(tài)類屬于所有外部類對象,只會加載一次,而靜態(tài)內(nèi)部類實(shí)例化之后,便是類級別的屬性,不屬于某個(gè)對象,只會加載一次,這樣就不會存在資源浪費(fèi),也沒有多線程效率低的問題。想出這個(gè)方法的人真的厲害。

(4)protected

Print是基類,國人喜歡講父類,但是老外覺得子類更牛逼,基類算是一個(gè)根基或者基礎(chǔ)吧,protected就是老子專門留給兒子的財(cái)產(chǎn)。

public class Print { 
  protected void print(){} 
  private void cannotprint(){} 
} 
 
 
public class PrintSon extends Print{ 
  void get(){ 
    print(); 
    //cannotprint();  private 私有的方法,子類還是不能用 
  } 
} 
 
 
public class NotSon { 
  void get() { 
    print(); 
  } 
} 

protected修飾的,子類可以拿到,介于public和private之間。

(5)類的訪問權(quán)限

每個(gè)文件只能有一個(gè)public類。

類名和文件名一致。

單例的話如果沒基礎(chǔ)看起來有點(diǎn)超前,但是后面知識點(diǎn)完善之后,會容易理解,訪問權(quán)限的控制還是在于你想不想把自己的那部分代碼給別人直接使用。

總結(jié)

以上就是本文關(guān)于Java編程訪問權(quán)限的控制代碼詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Java數(shù)據(jù)結(jié)構(gòu)之并查集的實(shí)現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)之并查集的實(shí)現(xiàn)

    并查集是一種用來管理元素分組情況的數(shù)據(jù)結(jié)構(gòu)。并查集可以高效地進(jìn)行如下操作。本文將通過Java實(shí)現(xiàn)并查集,感興趣的小伙伴可以了解一下
    2022-01-01
  • Springboot jar文件如何打包zip在linux環(huán)境運(yùn)行

    Springboot jar文件如何打包zip在linux環(huán)境運(yùn)行

    這篇文章主要介紹了Springboot jar文件如何打包zip在linux環(huán)境運(yùn)行,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • GraphQL入門總體創(chuàng)建教程

    GraphQL入門總體創(chuàng)建教程

    這篇文章主要為大家介紹了GraphQL入門總體創(chuàng)建教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • MVC AOP面向切面編程簡單介紹及實(shí)例

    MVC AOP面向切面編程簡單介紹及實(shí)例

    這篇文章主要介紹了MVC AOP面向切面編程簡單介紹及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • SpringBoot文件上傳(本地存儲)回顯前端操作方法

    SpringBoot文件上傳(本地存儲)回顯前端操作方法

    這篇文章主要介紹了SpringBoot文件上傳(本地存儲)回顯前端操作方法的相關(guān)資料,文中講解了文件上傳的基本原理,包括前端調(diào)用后端接口上傳文件,后端返回文件路徑給前端,前端通過路徑訪問圖片,需要的朋友可以參考下
    2024-11-11
  • java秒殺之redis限流操作詳解

    java秒殺之redis限流操作詳解

    這篇文章主要為大家詳細(xì)介紹了java秒殺之redis限流操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java中List介紹及常見方法和五種遍歷方式詳解

    Java中List介紹及常見方法和五種遍歷方式詳解

    這篇文章主要給大家介紹了關(guān)于Java中List介紹及常見方法和五種遍歷方式的相關(guān)資料,Java的List接口是集合框架的一部分,定義了一個(gè)有序的集合,允許存儲重復(fù)的元素,并且可以通過索引訪問這些元素,需要的朋友可以參考下
    2024-12-12
  • SpringBoot如何根據(jù)目錄結(jié)構(gòu)生成API接口前綴

    SpringBoot如何根據(jù)目錄結(jié)構(gòu)生成API接口前綴

    這篇文章主要介紹了SpringBoot如何根據(jù)目錄結(jié)構(gòu)生成API接口前綴,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • spring boot 如何請求后綴匹配

    spring boot 如何請求后綴匹配

    這篇文章主要介紹了spring boot 請求后綴匹配的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 深入了解java.util.Arrays的使用技巧

    深入了解java.util.Arrays的使用技巧

    在這篇文章中,我們將來帶大家看看?java.util.Arrays?,我們可以使用?Arrays?創(chuàng)建,比較,排序,搜索,stream?和轉(zhuǎn)化數(shù)組,感興趣的小伙伴可以了解一下
    2023-02-02

最新評論

名山县| 东光县| 峨边| 鄱阳县| 清丰县| 灵寿县| 文水县| 元阳县| 明水县| 安乡县| 会昌县| 安塞县| 郯城县| 银川市| 怀宁县| 黑山县| 宁远县| 晋中市| 东兰县| 行唐县| 双峰县| 安平县| 大石桥市| 鄂伦春自治旗| 淮安市| 西贡区| 嵊州市| 班玛县| 永济市| 罗甸县| 黄浦区| 瑞安市| 五原县| 眉山市| 新昌县| 垣曲县| 大埔县| 工布江达县| 兴城市| 汾阳市| 福海县|