回覆列表
  • 1 # IT人劉俊明

    要想了解Java介面中靜態屬性的作用,首先要看一下Java介面中屬性所具備的特點。

    嚴格地說,Java語言的介面(interface)中只有常量(final)沒有變數,即使在定義的時候沒有加final修飾符,系統也會自動為其加上public、static、final三個修飾符,也就是公共的、靜態的和不變的。為了驗證這一點我們可以透過一個實驗來看一下:

    我採用的是jdk10版本,使用的工具是IDEA。

    透過這個實驗我們發現,即使我在定義的時候沒有為PORT屬性加上static和final修飾符,系統也會自動把PORT識別成“靜態”的和“不變”的。

    接下來,我們再分析一下在介面中定義屬性都有哪些作用。

    首先,在介面中定義屬性的情況並不常見,甚至可以說比較罕見。因為介面是Java語言中的“全抽象”,介面中的方法全部是抽象的,所以我們通常把介面稱為“全抽象”,把抽象類稱為“半抽象”。因此,可以得出一個非常簡單的結論,介面就是用來定義方法的。那麼介面中定義屬性又有什麼意義呢?答案在於常量介面的應用。所謂的常量介面就是介面中沒有任何抽象方法的定義,而只定義了一大堆常量。

    關於常量應該定義在介面中還是類中,不同開發團隊有不同的理解,但是從目前大型軟體團隊開源出來的程式碼來看,幾乎找不到常量介面的應用,也就是說,常量應該定義在類中而不是介面中,原因是介面中定義的常量容易引起混亂(原因是需要實現一個不必要的介面)。

    所以,在介面中定義屬性,要慎重!

    如果有Java程式設計方面的問題,也可以諮詢我。

  • 2 # 爺看透一世紅塵

    介面定義靜態變數並不合適,因為你不能單獨呼叫某一個變數,如果你想使用其中一個變數必須實現介面,如果實現的話,必須覆蓋介面中所有的方法,和變數,定義靜態的是為了什麼,不就是為了類可以直接透過類名點變數名呼叫嗎,如果你在介面中寫靜態變數那不是白寫。

  • 中秋節和大豐收的關聯?
  • 清朝前期影響當時經濟持續發展的主要原因是什麼?