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

java中的類為什么只能用public修飾?

 更新時(shí)間:2020年12月17日 09:51:01   作者:阿廖莎  
這篇文章主要介紹了java中的類為什么只能用public修飾,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下

首先,類只能使用public修飾是一個(gè)偽命題,應(yīng)該說(shuō)我們只見(jiàn)到過(guò)使用public修飾的類,還有一些類沒(méi)有訪問(wèn)修飾符,此時(shí)訪問(wèn)權(quán)限為default。其次,類實(shí)際上分為外部類和內(nèi)部類(inner class),一般的類都是外部類,內(nèi)部類需要依賴外部類生成,內(nèi)部類可以用各種訪問(wèn)修飾符修飾。所以問(wèn)題轉(zhuǎn)化成,為什么不能使用private和protected修飾外部類?

我們知道,在Java中,訪問(wèn)修飾符可以修飾類、方法、變量和構(gòu)造方法。

訪問(wèn)權(quán)限由高到低有以下4種

類內(nèi)部 本包 子包 外部包
public v v v v
protected v v v x
default v v x x
private v x x x

我們使用訪問(wèn)修飾符去修飾類,就是為了讓類之間根據(jù)各種權(quán)限來(lái)訪問(wèn)。

假如外部類使用private修飾,則不能被其它類所訪問(wèn),這個(gè)類也就失去了意義。

假如外部類使用protected修飾,看起來(lái)與default相比,在包內(nèi)可訪問(wèn)的基礎(chǔ)上,包外的子類也可訪問(wèn)。但包外想成為子類需要先繼承父類,然而無(wú)法找到該父類實(shí)際上無(wú)法繼承(先有雞還是先有蛋的問(wèn)題),效果與default一致,也就沒(méi)必要存在了。

關(guān)于內(nèi)部類:

內(nèi)部類分為成員內(nèi)部類、局部?jī)?nèi)部類、匿名內(nèi)部類和靜態(tài)內(nèi)部類。

成員內(nèi)部類是定義在另一個(gè)類中的類,是最普通的一種內(nèi)部類。

class Circle {
  double radius = 0;
   
  public Circle(double radius) {
    this.radius = radius;
  }
   
  class Draw {   //內(nèi)部類
    public void drawSahpe() {
      System.out.println("drawshape");
    }
  }
}

這樣看起來(lái),類Draw像是類Circle的一個(gè)成員,Circle稱為外部類。成員內(nèi)部類可以無(wú)條件訪問(wèn)外部類的所有成員屬性和成員方法(包括private成員和靜態(tài)成員)。

內(nèi)部類可以用private、protected、default、public修飾,使用private修飾只能在外部類內(nèi)訪問(wèn)。

關(guān)于接口

public interface Comparable<T>{
  int compareTo(T other);
}

接口中的所有方法自動(dòng)地屬于public,在接口中聲明方法時(shí)不必提供關(guān)鍵字public。

修飾構(gòu)造方法

在單例設(shè)計(jì)模式中,我們使用private修飾構(gòu)造方法,將構(gòu)造器私有化,表示在類外部不能實(shí)例化該類。在類內(nèi)部實(shí)例化后,提供一個(gè)可供外部訪問(wèn)的方法,返回實(shí)例對(duì)象。

public class SingletonTest {
	public static void main(String[] args) {
		//測(cè)試
		Singleton instance = Singleton.getInstance();
		Singleton instance2 = Singleton.getInstance();
		System.out.println(instance == instance2); // true
		System.out.println("instance.hashCode=" + instance.hashCode());
		System.out.println("instance2.hashCode=" + instance2.hashCode());
	}
}

//餓漢式
class Singleton {
	//1. 構(gòu)造器私有化
	private Singleton() {
	}
	
	//2.本類內(nèi)部創(chuàng)建對(duì)象實(shí)例
	private final static Singleton instance = new Singleton();
	
	//3. 提供一個(gè)公有的靜態(tài)方法,返回實(shí)例對(duì)象
	public static Singleton getInstance() {
		return instance;
	}

以上就是java中的類為什么只能用public修飾?的詳細(xì)內(nèi)容,更多關(guān)于java public修飾的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java.io.UnsupportedEncodingException異常的正確解決方法(親測(cè)有效!)

    java.io.UnsupportedEncodingException異常的正確解決方法(親測(cè)有效!)

    這篇文章主要給大家介紹了關(guān)于java.io.UnsupportedEncodingException異常的正確解決方法,文中介紹的辦法親測(cè)有效,java.io.UnsupportedEncodingException是Java編程語(yǔ)言中的一個(gè)異常類,表示指定的字符集不被支持,需要的朋友可以參考下
    2024-02-02
  • SpringBoot配置SLF4J日志全過(guò)程

    SpringBoot配置SLF4J日志全過(guò)程

    這篇文章主要介紹了SpringBoot配置SLF4J日志全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • JDBC之PreparedStatement類中預(yù)編譯的綜合應(yīng)用解析

    JDBC之PreparedStatement類中預(yù)編譯的綜合應(yīng)用解析

    SQL 語(yǔ)句被預(yù)編譯并存儲(chǔ)在 PreparedStatement 對(duì)象中。然后可以使用此對(duì)象多次高效地執(zhí)行該語(yǔ)句
    2013-07-07
  • MyBatis是如何實(shí)現(xiàn)日志模塊的詳解

    MyBatis是如何實(shí)現(xiàn)日志模塊的詳解

    這篇文章主要給大家介紹了關(guān)于MyBatis是如何實(shí)現(xiàn)日志模塊的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用MyBatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • SpringBoot配置文件中敏感信息加密的三種方法

    SpringBoot配置文件中敏感信息加密的三種方法

    當(dāng)我們將項(xiàng)目部署到服務(wù)器上時(shí),一般會(huì)在jar包的同級(jí)目錄下加上application.yml配置文件,這樣可以在不重新?lián)Q包的情況下修改配置,這種方式存在安全隱患,如果配置文件泄露,就會(huì)造成數(shù)據(jù)庫(kù)密碼泄露,所以本文給大家介紹了SpringBoot配置文件中敏感信息加密的三種方法
    2024-05-05
  • List轉(zhuǎn)變?yōu)槎禾?hào)分隔的String(Java7和Java8分別實(shí)現(xiàn))

    List轉(zhuǎn)變?yōu)槎禾?hào)分隔的String(Java7和Java8分別實(shí)現(xiàn))

    這篇文章主要介紹了Java7和Java8分別實(shí)現(xiàn)List轉(zhuǎn)變?yōu)槎禾?hào)分隔的String,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java并發(fā)編程之顯示鎖ReentrantLock和ReadWriteLock讀寫(xiě)鎖

    Java并發(fā)編程之顯示鎖ReentrantLock和ReadWriteLock讀寫(xiě)鎖

    這篇文章主要介紹了Java并發(fā)編程之顯示鎖ReentrantLock和ReadWriteLock讀寫(xiě)鎖,本文講解了ReentrantLock概況、Lock接口、Lock使用、輪詢鎖的和定時(shí)鎖、公平性、可中斷獲鎖獲取操作等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • JAVACORE與HEAPDUMP生成方法

    JAVACORE與HEAPDUMP生成方法

    JavaCore文件主要保存的是Java應(yīng)用各線程在某一時(shí)刻的運(yùn)行的位置,即JVM執(zhí)行到哪一個(gè)類、哪一個(gè)方法、哪一個(gè)行上,它是一個(gè)文本文件,打開(kāi)后可以看到每一個(gè)線程的執(zhí)行棧,以stack?trace的顯示,本文介紹JAVACORE與HEAPDUMP生成大法,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Java如何獲取接口所有的實(shí)現(xiàn)類

    Java如何獲取接口所有的實(shí)現(xiàn)類

    這篇文章主要介紹了Java如何獲取接口所有的實(shí)現(xiàn)類,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 連續(xù)調(diào)用多個(gè)外部系統(tǒng)寫(xiě)接口保證數(shù)據(jù)一致性的思路

    連續(xù)調(diào)用多個(gè)外部系統(tǒng)寫(xiě)接口保證數(shù)據(jù)一致性的思路

    今天小編就為大家分享一篇關(guān)于連續(xù)調(diào)用多個(gè)外部系統(tǒng)寫(xiě)接口保證數(shù)據(jù)一致性的思路,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12

最新評(píng)論

班戈县| 建平县| 镇平县| 柘荣县| 临泉县| 大石桥市| 盱眙县| 拉萨市| 湘乡市| 当阳市| 收藏| 睢宁县| 绥宁县| 海南省| 勐海县| 裕民县| 同德县| 竹北市| 三原县| 陆川县| 南昌市| 加查县| 亳州市| 松原市| 抚顺县| 德钦县| 常熟市| 龙里县| 恩施市| 偏关县| 习水县| 明光市| 波密县| 海阳市| 扬州市| 象州县| 石渠县| 安图县| 图们市| 垦利县| 米脂县|