Javaプログラミング辞書 JavaA2Z

検索

static final

日本語 静的最終
英語 static final
ふりがな すたてぃっくふぁいなる
フリガナ スタティックファイナル

説明

staticfinalのふたつの予約語で修飾されたもの。
フィールドに「static final フィールド= 初期値;」の形式で使用する。
このstatic finalフィールドは、staticフィールドのためインスタンスを作らずに使用でき、final変数のため値が変更できない。そのため、定数値を宣言する場合に使用される。
 
リテラルは、プログラム上に直接書くと修正が難しくなる。
たとえば「int i = 100;」と書かれている場合に、この「100」という値の意味が分からず、また、プログラム上に複数の「100」がある場合、それぞれの値が同じ意味を持つのかそれとも別の意味の「100」なのかが判別できない。
そのため、リテラルはstatic finalフィールドとして宣言し、それを使い回すことが推奨される。
 
通常、static finalフィールド変数名は大文字小文字の間を_で継なぎ、さらに全て大文字で記述する。
static finalフィールドクラスの中でのみ使用する場合にはprivateフィールドに、外からも使用できるようにする場合にはpublicフィールドにした方が良いだろう。
ただし、publicフィールドとする場合、それぞれのクラスに作ると検索や修正が面倒になるため、通常は専用のクラスをひとつ作り、その中にまとめてpublic static finalフィールド宣言した方が良いだろう。

(KAB-studioからの広告)


使用例

// Sample.java
public class Sample
{
    /**
    *   static finalフィールド。
    *   アクセス修飾子は付けていませんが、通常、
    *   クラス内でのみ使用するときはprivateフィールド、
    *   他のクラスから使う時にはpublicフィールドにします。
    *   finalで定数値化されているので、publicでも問題
    *   ありません。ただ、publicフィールドの場合には
    *   定数値を入れる専用のクラスを作り、その中にまとめた方が
    *   いいでしょう。
    */
    static final String SYSTEM_NAME = "JavaA2Z";
    
    public static void main( String[] args )
    {
        // 定数値SYSTEM_NAMEを使用します。
        System.out.println( SYSTEM_NAME );
        // JavaA2Z
        // staticなのでstaticメソッドからも
        // 普通のメソッドからも使えます。

        // finalなので変更できません。
        // SYSTEM_NAME = "あいうえお";
        // コンパイルエラー:
        // final フィールド Sample.SYSTEM_NAME に値を割り当てられません。

        // SYSTEM_NAMEはStringクラスの参照型変数なので、
        // 参照が指し示す先のインスタンスの中身は
        // 変えうることができます。ただし、この場合は
        // Stringクラスなので、Stringクラスの性質として
        // 中身を変更できないため定数値として使用できます。
        // 逆に言えば、そういうクラスを使用すべきということです。
    }

    // static finalではなく、逆のfinal staticでも同じです。
    final static int MAX = 300;
}

参考サイト

(参考サイトは特にありません)

他の単語からの参照

みだしからの検索結果

解説本文からの検索結果

使用例からの検索結果

127.0.0.1
Boolean
BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter
CharArrayReader
CharArrayWriter
close
Connection
CREATE TABLE
DataInputStream
DataOutputStream
DELETE
DOM
DTD
EOF
EOFException
execute
FileInputStream
FileOutputStream
FileReader
FileWriter
FilterInputStream
FilterOutputStream
FilterReader
FilterWriter
finally
finalクラス
finalメソッド
final変数
GET
HEAD
HTTP
HttpURLConnection
InputStream
InputStreamReader
INSERT
IPアドレス
java.net.URL
java.sql.Date
JDBC
JDBCドライバ
length
LineNumberInputStream
LineNumberReader
localhost
Log4j
Math
NaN
Node
NOT NULL制約
ObjectInputStream
ObjectOutputStream
OutputStream
OutputStreamWriter
PipedInputStream
PipedOutputStream
PipedReader
PipedWriter
POST
PreparedStatement
PrintStream
PrintWriter
privateクラス
protectedクラス
public
PushbackInputStream
PushbackReader
Reader
ResultSet
return
RSS
Rss4j
SELECT
SequenceInputStream
Serializable
SQL
SQLException
SQLインジェクション
Statement
static final
staticクラス
staticフィールド
staticローカル変数
static変数
StringBufferInputStream
StringReader
StringWriter
TCP
Throwable
Timestamp
transient
try
UDP
UPDATE
URI
URL
WHERE
Writer
Xerces
XML
ZIP
イントロスペクション
クエリー
クライアント
クライアントサーバーシステム
クラス修飾子
クロスサイトスクリプティング
コネクション
コミット
サニタイジング
サーバー
ステートレス
ソケット
テキストファイル
テーブル
データベース
トランザクション
ドメイン名
バイト入力ストリーム
バイト出力ストリーム
バイナリーファイル
ビットフラグ
フィールド修飾子
フラッシュ
ブロックします
プリペアードステートメント
ホスト
ポート番号
メソッド修飾子
リクエスト
リクエストパラメーター
リクエストヘッダー
リフレクション
ルート
レコード
レスポンス
レスポンスヘッダー
ローカルクラス
ロールバック
主キー

制約
定数
投げられる
改行文字
文字入力ストリーム
文字出力ストリーム
文字列リテラル
無限大
直列化

last update of this word: 2005/05/25 22:56
(C)KAB-studio 2005,2007 ALL RIGHTS RESERVED.