JAVA基礎_修飾符

引言:Java的修飾符根據修飾的對象不一樣,分爲類修飾符、方法修飾符、變量修飾符,其中每種修飾符又分爲訪問控制修飾符和非訪問控制修飾符。
訪問控制存在的緣由:
a、讓客戶端程序員沒法觸及他們不該該觸及的部分
b、容許庫設計者能夠改變類內部的工做方式而不用擔憂影響到客戶端程序員程序員

1、訪問控制修飾符
Java中,可使用訪問控制符來保護對類、變量、方法和構造方法的訪問。
Java 支持 4 種不一樣的訪問權限:
default (即缺省,什麼也不寫): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。
private : 在同一類內可見。使用對象:變量、方法。 注意:不能修飾類(外部類)
public : 對全部類可見。使用對象:類、接口、變量、方法
protected : 對同一包內的類和全部子類可見。使用對象:變量、方法。 注意:不能修飾類(外部類)。安全

1. 類修飾符
訪問修飾符:公共類修飾符public
非訪問控制符:抽象類修飾符 abstract 、最終類修飾符 final
(1)公共類修飾符 public : Java 語言中類的訪問控制符只有 public 即公共的。每一個 Java 程序的有且只有一個類是 public,它被稱
爲主類 ,其餘外部類無訪問控制修飾符,具備包訪問性。注意:一個類的內部類能夠被其餘訪問控制修飾符protected、default、
private修飾,至關於類的成員。
     (2)抽象類修飾符 abstract :用 abstract 修飾符修飾的類,被稱爲抽象類。
     (3)最終類修飾符 final :當一個類不能被繼承時可用修飾符 final修飾爲最終類。被定義爲 final 的類一般是一些有固定做用、用來完成某
種標準功能的類。
     (4)類缺省訪問控制符:若是一個類沒有訪問控制符,說明它具備缺省的訪問控制符特性。此時,這個類只能被同一個包中的類訪問或引用。
這一訪問特性又稱爲包訪問性。多線程

2.方法修飾符
訪問控制修飾符:公共訪問控制符public、保護訪問控制符protected、缺省默認default、私有訪問控制符private
非訪問控制符:抽象方法控制符abstract 、靜態方法控制符static 、最終方法控制符final 、本地方法控制符native 、
同步方法控制符synchronized
  (1)抽象方法控制符 abstract :用修飾符 abstract 修飾的方法稱爲抽象方法。抽象方法僅有方法頭,沒有方法體和操做實現。
      (2)靜態方法控制符 static :用修飾符 static 修飾的方法稱爲靜態方法。靜態方法是屬於整個類的類方法;而不使用static 修飾、限定
的方法是屬於某個具體類對象的方法。 因爲 static方法是屬於整個類的,因此它不能操縱和處理屬於某個對象的成員變量,而只能處理
屬於整個類的成員變量,即 static 方法只能處理 static的域。
      (3)最終方法控制符 final :用修飾符 final修飾的方法稱爲最終方法。最終方法是功能和內部語句不能更改的方法,即最終方法不能重寫覆
蓋。final固定了方法所具備的功能和操做,防止當前類的子類對父類關鍵方法的錯誤定義,保證了程序的安全性和正確性。全部被
private 修飾符限定爲私有的方法,以及全部包含在 final 類 ( 最終類) 中的方法,都被認爲是最終方法。
      (4)本地方法控制符 native :用修飾符 native 修飾的方法稱爲本地方法。爲了提升程序的運行速度,須要用其它的高級語言書寫程序的
方法體,那麼該方法可定義爲本地方法用修飾符 native 來修飾。
      (5)同步方法控制符 synchronized :該修飾符主要用於多線程程序中的協調和同步。
3.變量修飾符
訪問控制符:公共訪問控制符public 、保護訪問控制符protected 、缺省默認訪問控制符default、私有訪問控制符private
非訪問控制符:靜態域修飾符static 、最終域修飾符 final 、易失 ( 共享 ) 域修飾符volatile 、暫時性域修飾符transient
(1)公共訪問控制符 public :用 public 修飾的域稱爲公共域。因爲 public 修飾符會下降運行的安全性和數據的封裝性,因此通常應減
少 public 域的使用。
      (2)私有訪問控制符 private : 用 private 修飾的成員變量 ( 域 ) 只能被該類自身所訪問,而不能被任何其它類 ( 包括子類 ) 所引用。
      (3)保護訪問控制符 protected :用 protected 修飾的成員變量能夠被三種類所引用:①該類自身;②同一個包中的其它類;③其它包中
的子類。使用修飾符 protected 的主要做用是容許其它包中的子類來訪問父類的特定屬性。
      (4) 缺省默認修飾符 :沒有訪問控制修飾符或用修飾符 default修飾的成員變量能夠被該類自己或同一包中的其餘類訪問。
      (5)靜態域修飾符 static :用 static修飾的成員變量僅屬於類的變量,而不屬於任何一個具體的對象,靜態成員變量的值是保存在類的內
存區域的公共存儲單元,而不是保存在某一個對象的內存區間。該類的任一對象訪問它時取到的都是相同的數據;該類的任一對象修改
它時 , 也都是對同一個內存單元進行操做。
      (6)最終域修飾符 final :最終域修飾符 final 是用來定義常量的。一個類的域 ( 成員變量 ) 若是被修飾符 final 說明,則它的取值在程序
的整個執行過程當中都是不變的。
      (7)易失 ( 共享 ) 域修飾符 volatile :易失 ( 共享 ) 域修飾符 volatile是用來講明這個成員變量可能被幾個線程所控制和修改。也就是說
在程序運行過程當中,這個成員變量有可能被其它的程序影響或改變它的取值。一般 volatile 用來修飾接受外部輸入的域。
      (8)暫時性域修飾符 transient :暫時性域修飾符 transient 用來定義一個暫時性變量。其特色是:用修飾符transient 限定的暫時性變
量,將指定 Java虛擬機認定該暫時性變量不屬於永久狀態,以實現不一樣對象的存檔功能。不然,類中全部變量都是對象的永久狀態的一
部分,存儲對象時必須同時保存這些變量。.net

原文:https://blog.csdn.net/u012723673/article/details/80613557 線程

相關文章
相關標籤/搜索