ความแตกต่างระหว่างสุดท้ายคงที่และสุดท้ายคงที่


151

ฉันพบรหัสที่มันประกาศรหัสเช่น

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?


149
หากพวกเขาแตกต่างกันฉันก็ยอมแพ้จาวาอย่างสมบูรณ์
Alex Lockwood

คำตอบ:


226

ไม่มีความแตกต่างเลย อ้างอิงกับ 8.3.1 - คลาส - ฟิลด์โมดิฟายเออร์ของข้อกำหนดภาษา Java ,

หากตัวดัดแปลงฟิลด์สองตัวหรือมากกว่านั้นปรากฏขึ้นในการประกาศฟิลด์มันเป็นธรรมเนียม แต่ไม่จำเป็นต้องปรากฏขึ้นตามลำดับที่สอดคล้องกับที่แสดงไว้ด้านบนในการผลิตสำหรับ FieldModifier

สำหรับฟิลด์การผลิตดังกล่าวแสดงรายการตัวดัดแปลงตามลำดับนี้:

@Annotation public protected private static final transient volatile

และสำหรับวิธีการ:

@Annotation public protected private abstract static final synchronized native strictfp


9
abstract static finalสำหรับการอ้างอิงการสั่งซื้อจากการเชื่อมโยงเป็น
sfarbota

42

พวกเขาก็เหมือน ๆ กัน. ลำดับการแก้ไขไม่สำคัญ และโปรดทราบว่าใช้กฎเดียวกันกับทุกคนบริบทที่มีการใช้ตัวดัดแปลงใน Java

อย่างไรก็ตามไกด์นำเที่ยวสไตล์ Java ส่วนใหญ่แนะนำ / มอบอำนาจตามลำดับที่เฉพาะเจาะจงสำหรับตัวดัดแปลง 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";

แม้ทั้งหมดข้างต้นจะเหมือนกันตำแหน่งของสามคนแรกนั้นสามารถสลับกันได้



4

ความแตกต่างระหว่างพวกเขาหรือพวกเขาเหมือนกันคืออะไร?

หากคุณกำลังพูดถึงการเปลี่ยนลำดับของการคงที่และสุดท้ายแล้วใช่พวกเขาจะเหมือนกัน

มันแตกต่างกันสำหรับส่วนตัวหรือสาธารณะ?

ไม่คุณสามารถใช้คำสั่งซื้อใด ๆ ในแบบส่วนตัวและสาธารณะ ความแตกต่างเพียงอย่างเดียวคือตัวแปรส่วนตัวจะไม่สามารถเข้าถึงได้นอกชั้นเรียนโดยตรง


1

นี่เป็นเพียงการประชุมหรือการปฏิบัติที่ผู้คนปฏิบัติตามเพื่อให้สไตล์การเขียนโปรแกรมสอดคล้องกัน มันช่วยเพิ่มความสามารถในการอ่าน วิธีที่นิยมในการเขียนนี่คือ

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

0

แน่นอนเหมือนกัน มันขึ้นอยู่กับนิสัยและความชอบของคุณ :-) ฉันใช้ลำดับสุดท้ายแบบคงที่สาธารณะสำหรับสมาชิกและวิธีการเช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.