私があなたを正しく理解していれば、あなたを混乱させているのは次のことです。
- 最初の例の変数名は大文字です:
LOG
.
- 2 番目の例の変数名は小文字です
log
。
- 単純に
final
型変数として宣言されている場合もあれば、型変数として宣言されている場合もありprotected static final
ます。
もしそうなら、
LOG
とlog
まったく同じです。ただし、プログラマーが定数を大文字で宣言するのは一般的な方法であることを知っておく必要があります。Javaのfinal
キーワードは、定数のままにしたい変数を定義します。繰り返しますが、コンパイラは定数を大文字で書く必要はありませんが、そうするのが一般的な方法です。そのため、一部のプログラマは小文字を使用し、他のプログラマは大文字を使用します。それは好みの問題です。
Javaのprotected
キーワードは、クラスのメソッドだけでなく、それを継承するサブクラスのメソッドからも変数にアクセスできるようにすることを意味します。
Java の static キーワードは、変数/フィールドに適用されると、これらのフィールドは静的メソッドによってのみ参照できることを示します。
そう、
protected static final Logger LOG
meansLOG
は定数変数で変更されず、このクラスの静的メソッドからアクセスでき、このクラスから継承する任意のクラスのオブジェクトからアクセスできます。
と、
final Logger LOG
meansLOG
は定数変数で変更されず、PACKAGE 内の任意のメソッドからアクセスできます。継承が存在するかどうかは問題ではありません。
他の人たちと同じように、私も一緒に行きprivate static final logger LOG
ます。
何が起こっているのかをより深く理解するには、Java アクセス制御に関する次のドキュメントをお読みください。
Java でのアクセス制御
これがお役に立てば幸いです。