
No.3ベストアンサー
- 回答日時:
定数は、以下の3パターンになると思います。
(1)クラスAと関連が強く、かつ他のオブジェクトにも公開してよい場合
クラスAのフィールドとして、
public static final String FILE_NAME = "hoge.csv";
(2)クラスAと関連が強く、かつ他のオブジェクトには公開したくない場合
クラスAのフィールドとして、
private static final String FILE_NAME = "hoge.csv";
(3)パッケージ共通で使う「設定系の定数」
変数をまとめたクラスを作り、そこに下記を入れ込む。
public static final String FILE_NAME = "hoge.csv";
(このときコンストラクタを private にしておけば無駄に new されることもありません)
あるいは、XML等の設定ファイルを設け、それをロードするクラスを作る。
Struts や EJB もそうですが、最近は設定系の定数はXML等に外出しにしておく傾向が強いです。そうしておくと、ユーザや開発者が動的に設定を変えることができるからです。
static final なフィールドを設けたときの注意点としては、
・コンパイル時にインライン展開される(クラスファイルにベタで書かれる)可能性が高いので、変数内容変更時は
参照している全クラスを再コンパイルする必要があるかもしれない。
・static final なフィールドはサブクラスでオーバライドできる。
以上、注意してください。また、
>JSPなどの場合、 HTMLで、色とか、サイズとかの指定を
>簡単に全体でできるといいなぁとおもったんですが。
これは、通常スタイルシートで設定します。
ご回答ありがとうございます。
#完全にとじるのわすれてました(笑)
まあやっぱり設定ファイル(XML)を外に
持つのが普通ってことですね。
>これは、通常スタイルシートで設定します。
ごもっともです。
No.2
- 回答日時:
定数だけのためにプレースホルダとしてクラスやインタフェースを定義するのはあまりよろしくありません。
(とは言っても、実際には使われていますが)一般的には、その定数が最も深く関わりのあるクラスに、static かつ final (かつ普通は public) なフィールドとして定義します。
例えば、ファイル名を定数としておきたい場合は、ファイルの入出力を行うクラスのフィールドとして定義します。
ご回答ありがとうございます。
そうなんですよね...
ただ、たとえば、
JSPなどの場合、
HTMLで、色とか、サイズとかの指定を
簡単に全体でできるといいなぁとおもったんですが。
でも、スーパークラスで指定しておけばいいのか...
とかもおもいつつ。
普通どうなんだろ?とおもったしだいです。
ありがとうございました。
No.1
- 回答日時:
メンバとしてfinalで定義してやるのが一般的では?
public class myclass{
final double PI = 3.141592;
final String myname = "Jack";
・
・
・
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
中学のクラス数
-
ヒグマを撃退
-
どこからも呼ばれていない無意...
-
配列の重複する値とその個数を...
-
命名規約は連番でいいのか?
-
tomcat上でのpropertiesファイ...
-
VBAもしくはVB6:クラスの中で...
-
自作のクラスファイルがインポ...
-
重複エラーを解決するには
-
「自作クラスの型」にキャスト...
-
エクセルのデータ振り分け方法...
-
構造体とクラスの違い
-
クラス名の「~Factory」って何?
-
javaで画像ファイルの入出力方法
-
同一パッケージにあるクラスが...
-
IPアドレスの3バイト目の呼び方
-
A・B・Cクラスとは?
-
C#で OpenSSLで3DES
-
VB.NETでCreateProcess
-
SQLiteについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ヒグマを撃退
-
中学のクラス数
-
そんなにお金がなくても年に1度...
-
UMLのクラス図はmain()も含むん...
-
どこからも呼ばれていない無意...
-
java eclipse 型に解決できません
-
配列の重複する値とその個数を...
-
EclipseでJSPのコンパイルエラー
-
僕の出身中学校は200人同級生が...
-
コンボボックスのマウスホイー...
-
main()を持つクラスが2つ以上...
-
Cstring(日本語含む)をcharに...
-
同一パッケージにあるクラスが...
-
IPアドレスのクラスAを取得して...
-
dllと同じプロジェクトにする方法
-
標準モジュールとクラスモジュ...
-
VBAもしくはVB6:クラスの中で...
-
Sub-LVDS規格とは
-
同じクラスにならない確率を教...
-
複数のクラスで共通した関数を...
おすすめ情報