วิธีmain
ไม่สามารถนำมาใช้เป็นตัวบ่งชี้ในขณะที่มันถูกใช้เป็นตัวบ่งชี้ที่จะประกาศวิธีการ "หลัก"?
สำหรับสำนวนคลาสสิกดังกล่าว:
public class Foo{
public static void main(String[] args){
}
}
main
ไม่ใช่คีย์เวิร์ดและอาจไม่เป็นคีย์เวิร์ดใน Java เนื่องจากเหตุผลด้านความเข้ากันได้ย้อนยุคที่ชัดเจน
เกี่ยวกับคำถามเป็นmain
ตัวระบุที่ดีหรือไม่?
อันดับแรก: ถูกต้องสำหรับคอมไพเลอร์ไม่ได้หมายความว่าจะดีเสมอไป
ตัวอย่างเช่นไฟล์java1234
ตัวเลือกที่เสนอเป็นตัวระบุที่ถูกต้อง แต่ควรหลีกเลี่ยงจริงๆ
main
มีความหมายโดยเฉพาะอย่างยิ่งและสำคัญมาก: ใช้เป็นวิธีจุดเริ่มต้นของคลาสและไหที่ดำเนินการโดยjava
บรรทัดคำสั่ง
การใช้main
ชื่อเมธอดที่ไม่เติมเต็มเกณฑ์ที่จะใช้โดยjava
บรรทัดคำสั่งจะทำให้เข้าใจผิดในขณะที่ใช้เป็นชื่อตัวแปรหรือชื่อคลาสอาจมีเหตุผล
ตัวอย่างเช่นการกำหนดคลาสที่แสดงถึงจุดเริ่มต้นของแอ็พพลิเคชันเนื่องจากMain
คลาสของแอ็พพลิเคชันเป็นที่ยอมรับและใช้เป็นชื่อตัวแปรเช่น:
public class Main {
public static void main(String args[]){
Main main = new Main();
}
}
โดยทั่วไปใน Java อักขระหลายตัวหรือ "คำ" ถือเป็นตัวระบุที่ถูกต้องสำหรับคอมไพเลอร์ แต่ไม่แนะนำอย่างยิ่งที่จะใช้ในรหัสไคลเอ็นต์ (แต่โค้ดที่สร้างขึ้นอาจทำเช่นนั้น: คลาสที่ซ้อนกันเป็นต้น) ซึ่งไม่สามารถอ่านได้และ / หรือทำให้เข้าใจผิดจริงๆ
ตัวอย่างเช่นสิ่งนี้อาจใช้ได้สำหรับคอมไพเลอร์:
public class Object {
public void foo() {
...
}
}
public class BadChosenIdentifier {
public static void main() {
new BadChosenIdentifier().toString(new Object());
}
public void toString(Object java1234) {
String _result$ = java1234 + " -> to avoid";
System.out.println(_result$);
}
}
แต่เราไม่ต้องการ:
- เพื่อตั้งชื่อ
Object
คลาสของเราตามที่กำหนดไว้ในjava.lang
(1)
- เพื่อตั้งชื่อเมธอด
main()
หากไม่เติมเต็มเกณฑ์ที่จะใช้โดยjava
บรรทัดคำสั่ง (2)
- เพื่อโอเวอร์โหลด
Object.toString()
วิธีการ (3)
- การตั้งชื่อตัวแปรของเราด้วย
_
, $
หรือน่าแปลกใจ / ตัวอักษรใด unmeaningful ที่ไปกับการตั้งชื่อที่ใช้ร่วมกัน (4)