2012-06-27 6 views
99

я нашел код, в котором он объявлен коде, какразница между окончательным статическим и статическим окончательным

private final static String API_RTN_SUCCESS = "0"; 
private final static String API_RTN_ERROR = "1"; 

public static final String SHARED_PREFERENCE_CONFIG = "shared_preference_config"; 
public static final String STARTUP_SETTING_KEY = "startup_setting"; 

В чем разница между ними, или они одинаковы? Или он отличается для private или public?

+112

Если они разные, я полностью отказываюсь от java. –

+13

Священный секрет: http://static.squarespace.com/static/518f5d62e4b075248d6a3f90/t/519bef92e4b02745db13b165/1369173914913/eol.jpg?format = 750w –

ответ

156

Нет разницы. В соответствии с 8.3.1 - Classes - Field Modifiers of the Java Language Specification,

Если два или более (различные) модификаторы поля появляются в объявлении поля, то обычно, хотя и не обязательно, что они появляются в том порядке, в соответствии с показанными выше, в производстве для FieldModifier ,

Для полей, указанная продукция перечисляет модификаторы в следующем порядке:

@Annotationpublicprotectedprivatestaticfinaltransientvolatile

И методы:

@Annotationpublicprotectedprivateabstractstaticfinalsynchronizednativestrictfp

+5

Для справки, заказ из ссылки - 'abstract static final'. – sfarbota

8

Они же,

private final static String API_RTN_ERROR = "1"; 

private static final String API_RTN_ERROR= "1"; 
28

Они одинаковы. Порядок модификаторов невелик. И обратите внимание, что то же правило применяется в всех контекстах, где модификаторы используются в Java.

Тем не менее, большинство руководств по стилю Java рекомендуют/предоставляют один и тот же конкретный порядок для модификаторов. В этом случае это public static final.

4

В чем разница между ними или они такие же?

Если вы говорите об изменении порядка статических и окончательных, то да, они одинаковы.

Он отличается другим:

Нет, вы можете использовать любой заказ у нас на сайте. Просто разница заключается в том, что частные переменные не будут доступны вне класса напрямую.

16
private static final String API_RTN_ERROR= "1"; 
private final static String API_RTN_ERROR= "1"; 
static private final String API_RTN_ERROR= "1"; 
static final private String API_RTN_ERROR= "1"; 
final static private String API_RTN_ERROR= "1"; 
final private static String API_RTN_ERROR= "1"; 

даже все вышеперечисленное одинаково, положение первых трех является взаимозаменяемым.

Смежные вопросы