הסבר על שיטת Java הראשי ()

1. סקירה כללית

כל תוכנית זקוקה למקום להתחיל את ביצועו; מדברים על תוכניות ג'אווה, זה ה רָאשִׁי שיטה. אנחנו כל כך רגילים לכתוב את רָאשִׁי שיטה במהלך הפעלות הקוד שלנו, שאנחנו אפילו לא שמים לב לפרטים שלה. במאמר מהיר זה ננתח שיטה זו ונראה כמה דרכים אחרות לכתוב אותה.

2. חתימה משותפת

תבנית השיטה העיקרית הנפוצה ביותר היא:
ראשי ריק סטטי ציבורי (מחרוזת [] טוענת) {}

ככה למדנו את זה, ככה IDE משלים את הקוד באופן אוטומטי עבורנו. אבל זו לא הצורה היחידה ששיטה זו יכולה להניח, יש כמה גרסאות חוקיות שבהן אנו יכולים להשתמש ולא כל מפתח שם לב לעובדה זו.

לפני שנצלול לחתימות השיטה הללו, בואו נסקור את המשמעות של כל מילת מפתח של החתימה הנפוצה:

  • פּוּמְבֵּי - שינוי גישה, כלומר נראות גלובלית
  • סטָטִי - ניתן לגשת לשיטה היישר מהמחלקה, איננו צריכים לייצר אובייקט כדי שיהיה לו הפניה ולהשתמש בו
  • בָּטֵל - פירושו ששיטה זו אינה מחזירה ערך
  • רָאשִׁי - שם השיטה, זה המזהה ש- JVM מחפש בעת ביצוע תוכנית Java

בנוגע ל טוען פרמטר, הוא מייצג את הערכים שהתקבלו בשיטה. כך אנו מעבירים טיעונים לתוכנית כאשר אנו מתחילים אותה לראשונה.

הפרמטר טוען הוא מערך של חוּטס. בדוגמה הבאה:

java CommonMainMethodSignature בר foo

אנו מבצעים תוכנית Java הנקראת CommonMainMethodSignature ומעבירים שני טיעונים: foo ו בָּר. ניתן לגשת לערכים אלה בתוך ה- רָאשִׁי שיטה כ טענות [0] (שיש foo כערך) ו טענות [1] (שיש בָּר כערך).

בדוגמה הבאה אנו בודקים טענות כדי להחליט אם לטעון פרמטרי בדיקה או ייצור:

סטטי ציבורי ריק ריק (String [] args) {if (args.length> 0) {if (args [0] .equals ("test")) {// load parameters test} else if (args [0]. equals ("ייצור")) {// טען פרמטרים לייצור}}}

תמיד טוב לזכור ש- IDE יכולים גם להעביר טיעונים לתוכנית.

3. דרכים שונות לכתוב רָאשִׁי() שיטה

בואו לבדוק כמה דרכים שונות לכתוב את רָאשִׁי שיטה. למרות שהם לא נפוצים במיוחד, הם חתימות תקפות.

שים לב שאף אחד מאלה אינו ספציפי ל רָאשִׁי שיטה, ניתן להשתמש בהם בכל שיטת Java אך הם גם חלק תקף מה- רָאשִׁי שיטה.

את הסוגריים המרובעים ניתן למקם בסמוך חוּט, כמו בתבנית המשותפת, או ליד טוען משני הצדדים:

ראשי ריק סטטי ציבורי (מחרוזת [] טוענת) {} 
סטטי ציבורי ריק ריק (מחרוזת טוענת []) {}

ניתן לייצג טיעונים כ- varargs:

סטטי ציבורי ריק ריק (מחרוזת ... טוענת) {}

אנחנו יכולים אפילו להוסיף strictfp בשביל ה רָאשִׁי() שיטה, המשמשת לתאימות בין מעבדים בעבודה עם ערכי נקודה צפה:

ציבורי קפדני סטטי-ריק ריק (מחרוזת [] טוען) {}

מסונכרן ו סופי הן גם מילות מפתח תקפות עבור רָאשִׁי שיטה אך לא תהיה להם השפעה כאן.

מצד שני, סופי ניתן ליישם על טוען כדי למנוע שינוי במערך:

ראשי סטטי ציבורי ריק (מחרוזת סופית [] טוענת) {}

לסיום דוגמאות אלה, אנו יכולים גם לכתוב את רָאשִׁי שיטה עם כל מילות המפתח הנ"ל (שכמובן, לעולם לא תשתמש בהן ביישום מעשי):

סופי מסונכרן סטטי סופי מסונכרן ריק ריק (מחרוזת סופית [] טוענת) {}

4. שיש יותר מאחד רָאשִׁי() שיטות

אנחנו יכולים גם להגדיר יותר מאחד רָאשִׁי שיטה בתוך היישום שלנו.

למעשה, יש אנשים שמשתמשים בה כטכניקת בדיקה פרימיטיבית לאימות שיעורים בודדים (אם כי מסגרות בדיקה כמו JUnit מסומנים הרבה יותר עבור פעילות זו).

כדי לציין איזה רָאשִׁי בשיטה שעל ה- JVM לבצע כנקודת הכניסה ליישום שלנו, אנו משתמשים ב- MANIFEST.MF קוֹבֶץ. בתוך המניפסט אנו יכולים לציין את המעמד הראשי:

דרגה ראשית: mypackage.ClassWithMainMethod

זה משמש בעיקר בעת יצירת הפעלה .קַנקַן קוֹבֶץ. אנו מציינים באיזו כיתה יש את רָאשִׁי שיטת התחלת הביצוע באמצעות קובץ המניפסט שנמצא בכתובת META-INF / MANIFEST.MF (מקודד ב- UTF-8).

5. מסקנה

הדרכה זו תיארה את הפרטים של רָאשִׁי שיטה וכמה צורות אחרות שהיא יכולה להניח, אפילו כאלה שאינם נפוצים במיוחד עבור רוב המפתחים.

זכור כי, למרות שכל הדוגמאות שהצגנו תקפות מבחינת תחביר, הן פשוט משרתות את המטרה החינוכית ולרוב אנחנו נצמד לחתימה המשותפת לעשות את העבודה שלנו.