ได้ Java อนุญาตให้สลับลำดับ Modifier ได้: static public void main() ทำงานเหมือน public static void main() ไม่มี Compile/Runtime Error
กฎระเบียบ Modifier Order
- Method Name: ต้องอยู่ท้ายสุด (main)
- Return Type: ต้องอยู่ก่อน Method Name (void)
- Modifiers (public, static, final, abstract, synchronized, strictfp): เรียงลำดับไหนก็ได้
- แต่ Best Practice: public static void main() (Access Modifier นำหน้า)
ตัวอย่างโค้ด
class ParentTest {
int age = 10;
public int getAge() {
age += 25;
return age;
}
}
public class Test {
// static public แทน public static - OK!
static public void main(String args[]) {
ParentTest pt = new ParentTest();
System.out.println("Age is: " + pt.getAge());
}
}
ผลลัพธ์
Age is: 35
รูปแบบที่ถูกต้องทั้งหมด
public static void main(String[] args) { } // Standard
static public void main(String[] args) { } // Valid
final public static void main(String[] args) { } // Valid
public final static void main(String[] args) { } // Valid
ข้อจำกัด
- ต้องมี public (JVM ต้องเข้าถึงได้)
- ต้องมี static (เรียกโดยไม่ต้อง new Object)
- Return Type ต้องเป็น void
- Parameter ต้องเป็น String[] หรือ String... args
- Method Name ต้องเป็น main (Case-sensitive)
ข้อสังเกต
แม้จะ Valid แต่ ต้องปฏิบัติตาม Convention (public static void main) เพื่อ Readability และ Team Standard