簡體   English   中英

為什么這個 Oracle Java 提供的答案在尋址枚舉集時使用私有靜態修飾符?

[英]Why does this Oracle Java provided answer use private static modifiers when addressing an Enum set?

我正在參加此 Oracle Java 培訓課程,但不了解提供的解決方案。 問題要求您使用 Enum 重寫 Card 類和 Deck 類。

為什么解決方案使用“private final”修飾符來引用等級和西裝的枚舉類?

使用“私人決賽”不是多余的嗎?

我剛有

public class Card_using_Enum {
    Rank rank;
    Suit suit;

(我的等級和套裝枚舉存在於包內的此類之外。)

代替

public class Card3 {
    private final Rank rank;
    private final Suit suit;

如果您檢查課程上的代碼,您會注意到(正如您粘貼的代碼所支持的那樣)他們使用的是private final

使用private意味着只有類內部的方法才能訪問這些字段。 這對訪問值施加了最大限制 - 一件好事

使用final意味着一旦設置了值,它們就永遠不能改變。 這使得對象不可變,這是一件好事,因為您可以對這種類型的對象做出許多假設。

不,private 表示私有(不能在類外訪問),static 表示靜態(類變量,而不是實例變量)。 他們完全不同。

您可以擁有一個公共靜態對象就好了。

class Stuff {
    public static int NUMBER_OF_STUFF = 42;
}

您應該已經知道非靜態變量也可以是公共/私有的。 這一切都可以協同工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM