Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

การเปลี่ยน public เป็น private ใน main method ของ Java

Main Method ต้องเป็น public

JVM เรียก main method จากนอก class ต้องเป็น public จึงจะเข้าถึงได้

ตัวอย่าง: public (ถูกต้อง)


public class Demo {
    public static void main(String[] args) {
        System.out.println("This works!");
    }
}

ผลลัพธ์

This works!

ตัวอย่าง: private (Compile OK แต่ Run Error)


public class Demo {
    private static void main(String[] args) {
        System.out.println("This won't run!");
    }
}

ผลลัพธ์

Error: Main method not found in class Demo, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

รายละเอียด

ทำไมต้อง public static void?

  • public: JVM (external) ต้องเรียกได้
  • static: เรียกโดยไม่ต้อง new Instance (entry point)
  • void: ไม่ต้องคืนค่าให้ OS (exit code ใช้ System.exit())
  • String[] args: Command line arguments

Multiple Main Methods

Class เดียวมี main ได้หลายตัว (overload) แต่ JVM เรียกแค่ public static void main(String[]) เท่านั้น

ModifierCompileRunหมายเหตุ
public✓✓Standard
private✓✗JVM ไม่เข้าถึงได้
protected✓✗JVM ไม่ใช่ subclass
(package-private)✓✗JVM ไม่อยู่ใน package เดียวกัน
static (missing)✗-Compile error: non-static
void (missing)✗-Compile error: return type