Sự khác biệt giữa tĩnh cuối cùng và tĩnh cuối cùng


151

Tôi tìm thấy một mã nơi nó khai báo mã như

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";

Sự khác biệt giữa chúng hoặc chúng giống nhau là gì? Hay nó khác nhau cho privatehay public?


149
Nếu chúng khác nhau, thì tôi hoàn toàn từ bỏ java.
Alex Lockwood

Câu trả lời:


226

Không có sự khác biệt nào cả. Theo 8.3.1 - Các lớp - Bộ điều chỉnh trường của Đặc tả ngôn ngữ Java ,

Nếu hai hoặc nhiều bộ sửa đổi trường (riêng biệt) xuất hiện trong một khai báo trường, thì thông thường, mặc dù không bắt buộc, chúng xuất hiện theo thứ tự phù hợp với trình bày ở trên trong sản xuất cho FieldModifier.

Đối với các trường, sản phẩm nói trên liệt kê các công cụ sửa đổi theo thứ tự này:

@Annotation public protected private static final transient volatile

Và cho các phương pháp:

@Annotation public protected private abstract static final synchronized native strictfp


9
Để tham khảo, thứ tự từ liên kết là abstract static final.
sfarbota

42

Họ giống nhau. Thứ tự sửa đổi là không đáng kể. Và lưu ý rằng quy tắc tương tự được áp dụng trong tất cả các bối cảnh nơi các công cụ sửa đổi được sử dụng trong Java.

Tuy nhiên, hầu hết các hướng dẫn kiểu Java đều khuyến nghị / ủy thác cùng một thứ tự cụ thể cho các bộ sửa đổi. Trong trường hợp này, nó là public static final.


19
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";

thậm chí tất cả các bên trên đều giống nhau, vị trí của ba đầu tiên là xen kẽ.


8

Họ giống nhau,

private final static String API_RTN_ERROR = "1";

private static final String API_RTN_ERROR= "1";

4

Sự khác biệt giữa chúng hoặc chúng giống nhau là gì?

Nếu bạn đang nói về việc thay đổi thứ tự tĩnh và cuối cùng thì có, chúng giống nhau.

nó khác nhau cho tư nhân hay công cộng?

Không, bạn có thể sử dụng bất kỳ trật tự nào ở chế độ riêng tư và công cộng. Chỉ cần khác biệt là các biến riêng tư sẽ không thể truy cập bên ngoài lớp trực tiếp.


1

Đây chỉ là một quy ước hoặc một người thực hành tuân theo để giữ cho phong cách mã hóa nhất quán. Nó cải thiện khả năng đọc. cách viết được ưa thích này là

private static final <Type> <variable_name> = <value>;

0

Tất nhiên là giống nhau. nó chỉ phụ thuộc vào thói quen và sở thích của bạn :-). Tôi cũng sử dụng thứ tự tĩnh công khai cho các thành viên và phương thức

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.