ציבורי סטטי void main(String[] args) – שיטת main ב־Java

הקדמה

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

בדוגמאות שיבואו, הכיתה שמכילה את השיטה main תקרא Test:

Test.java
public class Test {

	public static void main(String[] args){

		System.out.println("Hello, World!");
	
	}
}

במאמר זה תלמד על פרטי כל רכיב בשיטה main.

תחביר שיטת Main ב-Java

תחביר השיטה main תמיד הוא:

public static void main(String[] args){
	// קוד כלשהו
}

ניתן לשנות רק את שם הארגומנט של מערך המחרוזות (String). לדוגמא, ניתן לשנות את args ל-myStringArgs. הארגומנט מסוג מערך המחרוזות (String) יכול להופיע גם כ-String... args או כ-String args[].

ציבורי

מודיפייר הגישה של השיטה main צריך להיות ציבורי כך שה-JRE יוכל לגשת ולבצע את השיטה הזו. אם שיטה אינה ציבורית, אז הגישה מוגבלת. בדוגמה הבאה של קוד, השיטה main מחסרת את מודיפייר הגישה ציבורי:

Test.java
public class Test {

	static void main(String[] args){

		System.out.println("Hello, World!");
	
	}
}

כאשר אתה מכין ומריץ את התוכנית, השגיאה הבאה מתרחשת משום שהשיטה main אינה ציבורית וה-JRE אינו יכול למצוא אותה:

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

סטטי

כאשר התוכנית ב-Java מתחילה, אין אובייקט של המחלקה קיים. השיטה main חייבת להיות סטטית כך שה-JVM יכול לטעון את המחלקה לזכרון ולקרוא לשיטת ה-main בלי ליצור אינסטנס של המחלקה תחילה. בדוגמה הבאה של קוד, השיטה main מחסרת את מודיפייר הסטטית:

Test.java
public class Test {

	public void main(String[] args){

		System.out.println("Hello, World!");
	
	}
}

כאשר אתה מכין ומריץ את התוכנית, השגיאה הבאה מתרחשת משום שהשיטה main אינה סטטית:

  1. javac Test.java
  2. java Test
Output
Error: Main method is not static in class Test, please define the `main` method as: public static void main(String[] args)

וויד

כל שיטת Java חייבת לספק את סוג ההחזרה. סוג ההחזרה של שיטת ה-main ב-Java הוא void מכיוון שהיא אינה מחזירה דבר. כאשר שיטת ה-main מסתיימת בביצוע, התוכנית ב-Java נסגרת, לכן אין צורך באובייקט המוחזר. בדוגמה הבאה לקוד, שיטת ה-main מנסה להחזיר משהו על אף שסוג ההחזרה הוא void:

Test.java
public class Test {

	public static void main(String[] args){
	
		return 0;
	}
}

כאשר אתה מכין את התוכנית, מתרחשת השגיאה הבאה מכיוון ש-Java אינה מצפה לערך המוחזר כאשר סוג ההחזרה הוא void:

  1. javac Test.java
Output
Test.java:5: error: incompatible types: unexpected return value return 0; ^ 1 error

main

שיטת ה-main ב-Java תמיד מותקנת main. כאשר תוכנית Java מתחילה, היא תמיד מחפשת את שיטת ה-main. הדוגמה הבאה לקוד מראה שיטת main ששונתה לשם myMain:

Test.java
public class Test {

	public static void myMain(String[] args){

		System.out.println("Hello, World!");
	}
}

כאשר אתה מכין ומריץ את התוכנית, מתרחשת השגיאה הבאה מכיוון ש-JRE אינה יכולה למצוא את שיטת ה-main במחלקה:

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

String[] args

השיטה main ב-Java מקבלת ארגומנט יחיד מסוג מערך של String. כל מחרוזת במערך היא ארגומנט משורת הפקודה. ניתן להשתמש בארגומנטים משורת הפקודה כדי לשפר את פעולת התוכנית, או להעביר מידע לתוכנית בזמן ריצה. הדוגמה הבאה מציגה קוד שמדפיס את ארגומנטי שורת הפקודה שאתה מזין כאשר אתה מפעיל את התוכנית:

Test.java
public class Test {

	public static void main(String[] args){

    	for(String s : args){
		System.out.println(s);
    	}
	
    }
}

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

  1. javac Test.java
  2. java Test 1 2 3 "Testing the main method"
Output
1 2 3 Testing the main method

סיכום

במאמר זה למדת על כל רכיב בשיטת main של Java. המשך את הלמידה שלך עם עוד מדריכי Java.

Source:
https://www.digitalocean.com/community/tutorials/public-static-void-main-string-args-java-main-method