ה-main() הוא נקודת ההתחלה של JVM להתחיל בביצוע של תוכנית Java. ללא השיטה main(), JVM לא תפעיל את התוכנית. התחביר של שיטת main() הוא:
פּוּמְבֵּי: זה מפרט גישה. עלינו להשתמש במילת מפתח ציבורית לפני השיטה main() כדי ש-JVM יוכל לזהות את נקודת הביצוע של התוכנית. אם נשתמש ב-private, protected ו-default לפני שיטת main() היא לא תהיה גלויה ל-JVM.
סטָטִי: אתה יכול להפוך שיטה סטטית באמצעות מילת המפתח סטטית. עלינו לקרוא למתודה main() מבלי ליצור אובייקט. שיטות סטטיות הן השיטה שמפעילה מבלי ליצור את האובייקטים, כך שאיננו צריכים שום אובייקט כדי לקרוא למתודה main().
בָּטֵל: ב-Java, לכל שיטה יש את סוג ההחזרה. מילת מפתח Void מאשרת למהדר ששיטת main() אינה מחזירה שום ערך.
רָאשִׁי(): זוהי חתימת ברירת מחדל המוגדרת מראש ב-JVM. זה נקרא על ידי JVM לבצע תוכנית שורה אחר שורה ולסיים את הביצוע לאחר השלמת שיטה זו. אנו יכולים גם להעמיס יתר על המידה בשיטת main() .
מחרוזת ארגומנטים[]: השיטה main() מקבלת גם כמה נתונים מהמשתמש. הוא מקבל קבוצה של מחרוזות, אשר נקראות מערך מחרוזות. הוא משמש כדי להחזיק את הארגומנטים של שורת הפקודה בצורה של ערכי מחרוזת.
main(String args[])
כאן, agrs[] הוא שם המערך, והוא מסוג String. זה אומר שהוא יכול לאחסן קבוצת מחרוזת. זכור, מערך זה יכול גם לאחסן קבוצת מספרים אך בצורה של מחרוזת בלבד. ערכים המועברים לשיטת main() נקראים ארגומנטים. ארגומנטים אלה מאוחסנים במערך args[], כך שהשם args[] משמש בדרך כלל עבורו.
מה קורה אם המתודה main() נכתבת ללא String args[]?
התוכנית תעשה קומפילציה, אך לא תפעל, מכיוון ש-JVM לא יזהה את שיטת main() . זכור ש-JVM תמיד מחפש את השיטה main() עם מערך מסוג מחרוזת כפרמטר.
תהליך ביצוע
ראשית, JVM מבצע את הבלוק הסטטי, לאחר מכן הוא מבצע שיטות סטטיות, ולאחר מכן הוא יוצר את האובייקט הדרוש לתוכנית. לבסוף, הוא מבצע את שיטות המופע. JVM מבצע בלוק סטטי על בסיס העדיפות הגבוהה ביותר. זה אומר ש-JVM עובר תחילה לבלוק סטטי עוד לפני שהוא מחפש את השיטה main() בתוכנית.
דוגמא
class Demo { static //static block { System.out.println('Static block'); } public static void main(String args[]) //static method { System.out.println('Static method'); } }
תְפוּקָה:
Static block Static method
אנו רואים ש-JVM מבצע תחילה את הבלוק הסטטי, אם הוא קיים בתוכנית. לאחר מכן הוא מחפש את השיטה main() . אם השיטה main() לא נמצאת, היא נותנת שגיאה.
דוגמא
תוכנית שאין לה את השיטה main() נותנת שגיאה בזמן הריצה.
class DemoStaticBlock { Static //static block { System.out.println('Static block'); } }
תְפוּקָה:
Error: Main method not found in the class Demo, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application
אז השיטה main() צריכה להיכתב תמיד כך:
public static void main(String args[])
אנו יכולים להחליף בין ציבורי וסטטי ולכתוב זאת באופן הבא:
static public void main(String args[])
נוכל גם להשתמש בשם השונה עבור מערך סוג המחרוזת ולכתוב אותו כ:
static public void main(String[] x)
דרכים שונות לכתיבת שיטת main() הן:
static public void main(String []x) static public void main(String...args)
מחרוזת... ארג'ים: זה מאפשר לשיטה לקבל אפס או ארגומנטים מרובים. צריכות להיות בדיוק שלוש נקודות בין מחרוזת למערך; אחרת, זה נותן שגיאה.
דוגמא
תוכנית שאין לה שיטת main() אך קומפילה ופועלת בהצלחה.
abstract class DemoNoMain extends javafx.application.Application { static //static block { System.out.println('Java'); System.exit(0); } }
תְפוּקָה:
Java
עומס יתר של שיטת main().
אנחנו יכולים גם להעמיס יתר על המידה את שיטת main() . אנחנו יכולים להגדיר כל מספר של מתודה main() במחלקה, אבל חתימת השיטה חייבת להיות שונה.
דוגמא
class OverloadMain { public static void main(int a) //overloaded main method { System.out.println(a); } public static void main(String args[]) { System.out.println('main method incoked'); main(6); } }
תְפוּקָה:
רשימת מערך
main method invoked 6