歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java基礎——常用修飾符分析

在學習Java基礎時會時不時用到一些修飾符,這些修飾符修飾的內容不一樣,作用域也不一樣,只有梳理清楚才能正確的使用它們。

不同修飾符修飾內容的作用域

public

public公共的,表示該屬性(或方法)公開,所有用戶都可以直接進行調用。

default缺省

default表示默認,不僅本類訪問,而且是同包可見。

private

private私有的,表示該屬性(方法)為只有本類內部可以訪問(類內部可見)。(想用private還要用set和get方法供其他方法調用,這樣可以保證對屬性的訪問方式統一,並且便於維護訪問權限以及屬性數據合法性)。

如果沒有特殊情況,屬性一定私有,方法該公開的公開。

如果不指明誰調用方法,則默認為this。區分實例變量和局部變量時一定要寫this。

protected

protected受保護的,對於子類和同包下的類可見,就是public的,可以自由使用,沒有任何限制,而對於其他的外部class,protected就變成private。

列表對比如下:

常用修飾符修飾內容的作用域

修飾符

本類

同一包下(有無關系均可)

子類

其他包

public

protected

 

缺省(default)

 

 

private

 

 

 

 

不同修飾符可以修飾的內容

public、private、protected和缺省default

以上幾個都可以用來修飾成員變量、成員方法和構造方法,只是有些常見,有些不常見,使用場合約定俗成。除此之外,public還可以用來修飾類本身。

下面針對一些特殊的修飾符來進行介紹。

abstract

abstract抽象的,可以修飾類、方法。

抽象類:

abstract修飾的類稱為抽象類,此類不能被實例化,必須被繼承使用,如果一個類繼承抽象類,那麼這個類要麼本身也是抽象類,要麼這個類重寫父類的所有抽象方法。

abstract可以將子類的共性最大限度的抽取出來,放在父類中,以提高程序的簡潔性。

抽象方法:

方法沒有方法體,且用abstract修飾。有抽象方法的類一定是抽象類(或者接口);抽象類中不一定有抽象方法。

注意:不能與final,private和static共存。

static

static靜態的,是一個修飾符,用於修飾成員(包括成員變量和成員方法)。修飾的成員被所有的對象所共享。

被修飾後的成員具備以下特點:

①隨著類的加載而加載。

②優先於對象存在。

③被所有對象所共享。

④可以直接被類名調用。

static修飾變量的使用可參考一下《Java基礎——成員變量、局部變量和靜態變量的區別》

final

final最終的,它可以修飾類,修飾成員變量,修飾成員方法。

它修飾的類,不能被繼承。       

它修飾的成員方法,是不可以被子類重寫的。

它修飾的成員變量,其實是一個常量。

關於abstractfinal的有關用法,可以參考另一篇《Java基礎——抽象類和接口的關系》

列表對比如下:

常用修飾符的修飾內容

修飾符\元素

類本身

成員變量

成員方法

構造方法

public

缺省

private

 

protected

 

abstract

 

 

static

 

 

final

 

 

分析以後可以看出同一內容可以由不同的修飾符來修飾,有必要找出常見的規則,如下:

所有的類都用public修飾,並且,在一個Java文件下,我們只寫一個類。

所有的成員變量用private修飾。

所有的成員方法用public修飾,

如果是在抽象類或者接口中用 public abstract修飾。

所有的構造方法用public修飾,

如果類是工具類或者單例類,則構造用private修飾。

 

小結

修飾符雖然多,但是基本上各司其職,會有協同的時候,同樣也會有拮抗作用。在進行不同操作的時候,使用不同的修飾符,程序才能高效有序無誤的運行。

Copyright © Linux教程網 All Rights Reserved