2

定数宣言にインターフェースが使われていることを発見したコードウォークスルーを行っていましたが、インターフェースで見つけたのは以下のようなものです。

public interface abcConstants extends Serializable
 {

int def = 4;
int efg = 7;

}

私の知識定数によると、それは正しいことを私に知らせてください。

4

3 に答える 3

5

インターフェイスで宣言されたすべての変数はpublic static finalです。

インターフェイスのメソッドはpublic abstractです。

インターフェイスの変数またはメソッドの前に上記のキーワードを追加することは冗長ですが、コードを読むのに役立つ場合があります。

于 2012-09-14T12:28:38.577 に答える
1

JLS#9.3。フィールド(定数)宣言

インターフェイス本体のすべてのフィールド宣言は、暗黙的にパブリック、静的、およびファイナルです。このようなフィールドには、これらの修飾子のいずれかまたはすべてを冗長に指定することが許可されています。

ただし、の使用は避けてくださいinterface for constant declaration and Define enum instead

于 2012-09-14T12:29:24.347 に答える
0

インターフェイス内で宣言された変数は、デフォルトではpublicstaticfinalですそのように明示的にマークする必要はありません。また、インターフェイスで宣言されたすべてのメソッドは、デフォルトでpublic abstractとしてマークされているため、..

public interface abcConstants extends Serializable
{

int def = 4;
int efg = 7;

}

と同等です

public interface abcConstants extends Serializable
{

public static final int def = 4;
public static final int efg = 7;

}
于 2012-09-14T12:53:14.493 に答える