2012-04-29 17 views
2

このようなただ1クラッセでそれらを置くことは良い考えであれば、私は、私の3クラスで民間最終静的変数の多くを持っているので、私はただ、知りたい:"private final static"変数を持つJavaクラス。それは良い考えですか?

public class Definicoes 
{ 
    /* 
    * Definições da Janela de Jogo 
    */ 

    public final static String nomeJanela; 
    public final static short janLargura; 
    public final static short janAltura; 
    public final static byte tabLinhas; 
    public final static byte tabColunas; 
    static 
    { 
    nomeJanela = "JFindPairs - 0.3"; 
    janLargura = 480; 
    janAltura = 480; 
    tabLinhas = 4; 
    tabColunas = 4; 
    } 

    /* 
    * Definições do Tabuleiro e respectivas Cartas 
    */ 

    public final static byte numeroCartoes; 
    static 
    { 
     numeroCartoes = 16; 
    } 
} 

事前に感謝を助けてください。 Luis Da Costa

+5

あなたの件名には "private final static"と表示されていますが、サンプルコードでは "public final static"と表示されています。 –

+0

私は元のクラスで私はそれらを私的に使っていましたが、私はそれらを公開として必要とする他のクラスにアクセスするために、これが私が尋ねる理由です。それらを元のクラスから分離して公開することをお勧めします場合 – aliasbody

+1

用語について:キーワード 'final'は、 '変数'という単語の最も一般的な定義に違反します。なぜ静的なブロックを導入し、宣言に代入文を書くのではないのですか? 'public final static String nomeJanela =" JFindPairs-0.3 ";あなたは1行に支払われますか? –

答えて

4

すべてが同じでなければならない場合、私はそれらを1か所に配置します。さもなければ、私はそれらが使用される場所で定数を保持します。

+0

最後の静的変数が別のクラスのものであるため、これが分離されています – aliasbody

+1

これは、私が1つの場所にすべてである必要はないことを示唆しています。多くの場合、クラス間の依存関係を最小限にすることが最善です。ところで:私は '最終的な静的バイトnumeroCartoes = 16; 'を使用します –

+0

diferenceは何ですか? – aliasbody

1

これは私がそれを行う方法です。戻ってきて、ある時点でそれらを変更する必要がある場合に備えて、それらをすべて1つの場所に置くのが理にかなっています。 1つの変数のクラス:

1

プライベートとして開始すると、つまり、1つのクラスでのみ使用されると、そのクラスに残ります。

異なるクラスからアクセスする必要がある場合は、コンセプトが隠れている可能性があります。この概念は、静的な最終的な最終変数を持つクラスとして現れますが、複数のクラスに分割される可能性が高くなります(少なくとも私の経験です)。不幸にも、あなたのプログラムについてもっと知ることができます。

1

これは完全に有効ですが、特定のクラスに属する変数/定数を切り離すためにOOP設計の概念を破ることになります。