瘋狂Java之學習筆記(25)-------------修飾符

      網友投稿 708 2025-04-07

      瘋狂Java之學習筆記(25)-------------修飾符


      java中的修飾符分為類修飾符,字段修飾符,方法修飾符。根據功能的不同,主要分為以下幾種。

      1、權限訪問修飾符

      public,protected,default,private,這四種級別的修飾符都可以用來修飾類、方法和字段。

      包外???????? 子類????????? 包內?????????? 類內

      public????? yes??????? yes????????? yes???????? yes

      protected?? no???????? yes????????? yes???????? yes

      default???? no???????? no?????????? yes???????? yes

      private???? no???????? no?????????? no????????? yes

      2、final修飾符

      final的意思是不可變,他可以修飾類、字段、方法。修飾類后類不能被擴展(extends),也就是不能被繼承。修飾字段后字段的值不能被改變,因此如果有final修飾字段,應該對字段進行手動初始化。修飾方法后該方法不能被改變,也就是重寫。

      3、abstract修飾符

      abstract是抽象的意思,用來修飾類和方法,修飾類后,該類為抽象類,不能被實例化,必需進行擴展。修飾方法后,該方法為抽象方法必須被子類重寫(override)。

      4、static修飾符

      static用來修飾內部類,方法,字段。修飾內部類說明該內部類屬于外部類而不屬于外部類的某個實例。修飾字段說明該字段屬于類而不屬于類實例。修飾方法說明該方法屬于類而不屬于類實例。

      類修飾符

      Public

      可以從其他類中訪問

      obstract

      本類不能被實例化

      final

      不能再聲明子類

      構造器修飾符

      Public

      可以從所有的類中訪問

      Protected

      只能從自己的類和它的子類中訪問

      Private

      只能在本類中訪問

      域修飾符

      Public

      可以從所有的類中訪問

      Protected

      只能從本類和它的子類中訪問

      Private

      只能從本類中訪問它

      Static

      對該類的所有實例只能有一個域值存在

      transient

      不是一個對象持久狀態的一部份

      Volatile

      可以被異步的線程所修改

      final

      必須對它賦予初值并且不能修改它

      局部變量修飾符

      final

      必須對它賦予初值并且不能修改它

      方法修飾符

      Public

      可以從所有的類中訪問它

      Protected

      只能從本類及其子類中訪問它

      Private

      只能從本類中訪問它

      abstract

      沒有方法體,屬于一個抽象類

      瘋狂Java之學習筆記(25)-------------修飾符

      final

      子類不能覆蓋它

      static

      被綁定于類本身而不是類的實例

      native

      該方法由其他編程語言實現

      asnchronized

      在一個線程調用它之前必須先給它加

      ---------------------------------------------------------------------------------------------------------------------------------------------------------

      關于Java中各種修飾符與訪問修飾符的說明

      類:

      訪問修飾符? 修飾符??class 類名稱?extends 父類名稱 implement 接口名稱

      (訪問修飾符與修飾符的位置可以互換)

      訪問修飾符

      名稱

      說明

      備注

      public

      可以被所有類訪問(使用)

      public類必須定義在和類名相同的同名文件中

      package

      可以被同一個包中的類訪問(使用)

      默認的訪問權限,可以省略此關鍵字,可以定義在和public類的同一個文件中

      private

      修飾內部類

      修飾符

      名稱

      說明

      備注

      final

      使用此修飾符的類不能夠被繼承

      abstract

      如果要使用abstract類,之前必須首先建一個繼承abstract類的新類,新類中實現abstract類中的抽象方法。

      類只要有一個abstract方法,類就必須定義為abstract,但abstract類不一定非要保護abstract方法不可

      變量

      l???????? Java中沒有全局變量,只有方法變量、實例變量(類中的非靜態變量)、類變量(類中的靜態變量)。

      l???????? 方法中的變量不能夠有訪問修飾符。所以下面訪問修飾符表僅針對于在類中定義的變量。

      l???????? 聲明實例變量時,如果沒有賦初值,將被初始化為null(引用類型)或者0、false(原始類型)。

      l???????? 可以通過實例變量初始化器來初始化較復雜的實例變量,實例變量初始化器是一個用{}包含的語句塊,在類的構造器被調用時運行,運行于父類構造器之后,構造器之前。

      l??????????? 類變量(靜態變量)也可以通過類變量初始化器來進行初始化,類變量初始化器是一個用static{}包含的語句塊,只可能被初始化一次。

      訪問修飾符

      名稱

      說明

      備注

      public

      可以被任何類訪問

      protected

      可以被同一包中的所有類訪問

      可以被所有子類訪問

      子類沒有在同一包中也可以訪問

      private

      只能夠被當前類的方法訪問

      缺省

      無訪問修飾符

      可以被同一包中的所有類訪問

      如果子類沒有在同一個包中,也不能訪問

      修飾符

      名稱

      說明

      備注

      static

      靜態變量(又稱為類變量,其它的稱為實例變量)

      可以被類的所有實例共享。

      并不需要創建類的實例就可以訪問靜態變量

      final

      常量,值只能夠分配一次,不能更改

      注意不要使用const,雖然它和C、C++中的const關鍵字含義一樣

      可以同static一起使用,避免對類的每個實例維護一個拷貝

      transient

      告訴編譯器,在類對象序列化的時候,此變量不需要持久保存

      主要是因為改變量可以通過其它變量來得到,使用它是為了性能的問題

      volatile

      指出可能有多個線程修改此變量,要求編譯器優化以保證對此變量的修改能夠被正確的處理

      方法

      訪問修飾符修飾符返回類型方法名稱(參數列表)throws 違例列表

      l 類的構造器方法不能夠有修飾符、返回類型和throws子句

      l? 類的構造器方法被調用時,它首先調用父類的構造器方法,然后運行實例變量和靜態變量的初始化器,然后才運行構造器本身。

      l? 如果構造器方法沒有顯示的調用一個父類的構造器,那么編譯器會自動為它加上一個默認的super(),而如果父類又沒有默認的無參數構造器,編譯器就會報錯。super必須是構造器方法的第一個子句。

      l? 注意理解private構造器方法的使用技巧。

      訪問修飾符

      名稱

      說明

      備注

      public

      可以從所有類訪問

      protected

      可以被同一包中的所有類訪問

      可以被所有子類訪問

      子類沒有在同一包中也可以訪問

      private

      只能夠被當前類的方法訪問

      缺省

      無訪問修飾符

      可以被同一包中的所有類訪問

      如果子類沒有在同一個包中,也不能訪問

      修飾符

      名稱

      說明

      備注

      static

      靜態方法(又稱為類方法,其它的稱為實例方法)

      提供不依賴于類實例的服務

      并不需要創建類的實例就可以訪問靜態方法

      final

      防止任何子類重載該方法

      注意不要使用const,雖然它和C、C++中的const關鍵字含義一樣

      可以同static一起使用,避免對類的每個實例維護一個拷貝

      abstract

      抽象方法,類中已聲明而沒有實現的方法

      不能將static方法、final方法或者類的構造器方法聲明為abstract

      native

      用該修飾符定義的方法在類中沒有實現,而大多數情況下該方法的實現是用C、C++編寫的。

      參見Sun的Java Native接口(JNI),JNI提供了運行時加載一個native方法的實現,并將其于一個Java類關聯的功能

      synchronized

      多線程的支持

      當一個方法被調用時,沒有其它線程能夠調用該方法,其它的synchronized方法也不能調用該方法,直到該方法返回

      接口

      訪問修飾符?interface 接口名稱?extends 接口列表

      l???????? 接口不能夠定義其聲明的方法的任何實現

      l???????? 接口中的變量總是需要定義為“public static final 接口名稱”,但可以不包含這些修飾符,編譯器默認就是這樣,顯示的包含修飾符主要是為了程序清晰

      訪問修飾符

      名稱

      說明

      備注

      public

      所有

      無訪問修飾符(默認)

      訪問修飾符

      名稱

      說明

      備注

      public

      可以被所有類訪問(使用)

      public類必須定義在和類名相同的同名文件中

      package

      可以被同一個包中的類訪問(使用)

      默認的訪問權限,可以省略此關鍵字,可以定義在和public類的同一個文件中

      private

      修飾內部類

      修飾符

      名稱

      說明

      備注

      final

      使用此修飾符的類不能夠被繼承

      abstract

      如果要使用abstract類,之前必須首先建一個繼承abstract類的新類,新類中實現abstract類中的抽象方法。

      類只要有一個abstract方法,類就必須定義為abstract,但abstract類不一定非要保護abstract方法不可

      變量

      l???????? Java中沒有全局變量,只有方法變量、實例變量(類中的非靜態變量)、類變量(類中的靜態變量)。

      l???????? 方法中的變量不能夠有訪問修飾符。所以下面訪問修飾符表僅針對于在類中定義的變量。

      l???????? 聲明實例變量時,如果沒有賦初值,將被初始化為null(引用類型)或者0、false(原始類型)。

      l???????? 可以通過實例變量初始化器來初始化較復雜的實例變量,實例變量初始化器是一個用{}包含的語句塊,在類的構造器被調用時運行,運行于父類構造器之后,構造器之前。

      l??????????? 類變量(靜態變量)也可以通過類變量初始化器來進行初始化,類變量初始化器是一個用static{}包含的語句塊,只可能被初始化一次。

      訪問修飾符

      名稱

      說明

      備注

      public

      可以被任何類訪問

      protected

      可以被同一包中的所有類訪問

      可以被所有子類訪問

      子類沒有在同一包中也可以訪問

      private

      只能夠被當前類的方法訪問

      缺省

      無訪問修飾符

      可以被同一包中的所有類訪問

      如果子類沒有在同一個包中,也不能訪問

      修飾符

      名稱

      說明

      備注

      static

      靜態變量(又稱為類變量,其它的稱為實例變量)

      可以被類的所有實例共享。

      并不需要創建類的實例就可以訪問靜態變量

      final

      常量,值只能夠分配一次,不能更改

      注意不要使用const,雖然它和C、C++中的const關鍵字含義一樣

      可以同static一起使用,避免對類的每個實例維護一個拷貝

      transient

      告訴編譯器,在類對象序列化的時候,此變量不需要持久保存

      主要是因為改變量可以通過其它變量來得到,使用它是為了性能的問題

      volatile

      指出可能有多個線程修改此變量,要求編譯器優化以保證對此變量的修改能夠被正確的處理

      方法

      訪問修飾符修飾符返回類型方法名稱(參數列表)throws 違例列表

      l 類的構造器方法不能夠有修飾符、返回類型和throws子句

      l? 類的構造器方法被調用時,它首先調用父類的構造器方法,然后運行實例變量和靜態變量的初始化器,然后才運行構造器本身。

      l? 如果構造器方法沒有顯示的調用一個父類的構造器,那么編譯器會自動為它加上一個默認的super(),而如果父類又沒有默認的無參數構造器,編譯器就會報錯。super必須是構造器方法的第一個子句。

      l? 注意理解private構造器方法的使用技巧。

      訪問修飾符

      名稱

      說明

      備注

      public

      可以從所有類訪問

      protected

      可以被同一包中的所有類訪問

      可以被所有子類訪問

      子類沒有在同一包中也可以訪問

      private

      只能夠被當前類的方法訪問

      缺省

      無訪問修飾符

      可以被同一包中的所有類訪問

      如果子類沒有在同一個包中,也不能訪問

      修飾符

      名稱

      說明

      備注

      static

      靜態方法(又稱為類方法,其它的稱為實例方法)

      提供不依賴于類實例的服務

      并不需要創建類的實例就可以訪問靜態方法

      final

      防止任何子類重載該方法

      注意不要使用const,雖然它和C、C++中的const關鍵字含義一樣

      可以同static一起使用,避免對類的每個實例維護一個拷貝

      abstract

      抽象方法,類中已聲明而沒有實現的方法

      不能將static方法、final方法或者類的構造器方法聲明為abstract

      native

      用該修飾符定義的方法在類中沒有實現,而大多數情況下該方法的實現是用C、C++編寫的。

      參見Sun的Java Native接口(JNI),JNI提供了運行時加載一個native方法的實現,并將其于一個Java類關聯的功能

      synchronized

      多線程的支持

      當一個方法被調用時,沒有其它線程能夠調用該方法,其它的synchronized方法也不能調用該方法,直到該方法返回

      接口

      訪問修飾符?interface 接口名稱?extends 接口列表

      l???????? 接口不能夠定義其聲明的方法的任何實現

      l???????? 接口中的變量總是需要定義為“public static final 接口名稱”,但可以不包含這些修飾符,編譯器默認就是這樣,顯示的包含修飾符主要是為了程序清晰

      訪問修飾符

      名稱

      說明

      備注

      public

      所有

      無訪問修飾符(默認)

      C++ Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:word設置單元格格式快捷鍵(excel單元格格式設置快捷鍵)
      下一篇:WPS表格辦公利用TRANSPOSE函數轉置表格
      相關文章
      久久影院亚洲一区| 国产偷国产偷亚洲高清在线| 亚洲午夜日韩高清一区| 亚洲欧美日韩中文字幕在线一区| 亚洲国产午夜电影在线入口| 1区1区3区4区产品亚洲| 老汉色老汉首页a亚洲| 亚洲一卡2卡三卡4卡有限公司| 久久久久久久综合日本亚洲| 亚洲中文字幕无码一久久区| 亚洲最大AV网站在线观看| 亚洲欧洲国产精品香蕉网| 亚洲精品你懂的在线观看| 亚洲成av人片在线观看无码不卡| 久久亚洲高清观看| 亚洲国产日韩一区高清在线| 亚洲精品国产免费| 国产成人精品日本亚洲11| 亚洲三级高清免费| 亚洲Av永久无码精品黑人| 亚洲AV无码AV日韩AV网站| 亚洲AⅤ无码一区二区三区在线 | 久久久久亚洲AV无码去区首| 国产亚洲精品第一综合| 2022中文字字幕久亚洲| 国产亚洲精品岁国产微拍精品| 久久久影院亚洲精品| 亚洲精品国产啊女成拍色拍| 亚洲国产91在线| 亚洲美国产亚洲AV| 亚洲国产V高清在线观看| 亚洲永久精品ww47| 亚洲福利视频一区| 亚洲中文无码av永久| 亚洲AV无码一区二区三区牲色| 亚洲国产主播精品极品网红| 亚洲国产精品一区第二页 | 国产av无码专区亚洲av毛片搜 | 亚洲国产成人手机在线电影bd | 亚洲产国偷V产偷V自拍色戒| 亚洲黄色片在线观看|