התוכנית הראשונה
Hello World
נתחיל עם התוכנית הקלאסית שכל מתכנת כותב ראשונה - הדפסת "Hello, World!" אל המסך:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
נראה הרבה בשביל שורה אחת, נכון? ב-Java אפילו הדפסה פשוטה חייבת לשבת בתוך
class ובתוך main. בואו נפרק את הקוד ונבין כל חלק.
פירוק שורה-שורה
public class Main
- public - המחלקה גלויה ונגישה מכל מקום.
- class - הכרזה על מחלקה. ב-Java כל שורת קוד חייבת לשבת בתוך מחלקה.
- Main - שם המחלקה. נהוג שיתחיל באות גדולה, בסגנון PascalCase.
שם הקובץ חייב להיות זהה לשם המחלקה הציבורית.
כלומר, המחלקה Main חייבת לשבת בקובץ בשם Main.java.
public static void main(String[] args)
זו נקודת הכניסה של התוכנית - השורה הראשונה שה-JVM מריץ כשהתוכנית עולה.
- public - נגיש מבחוץ, כדי שה-JVM יוכל לקרוא לו
- static - שייך למחלקה עצמה ולא לאובייקט מסוים שלה
- void - הפונקציה לא מחזירה שום ערך
- main - השם המדויק שה-JVM מחפש כדי להתחיל
- String[] args - מערך מחרוזות שדרכו מגיעים ארגומנטים משורת הפקודה
החתימה הזו חייבת להיות מדויקת - כל סטייה ממנה תמנע מה-JVM להריץ את התוכנית.
System.out.println("Hello, World!");
- System - מחלקה מובנית שמרכזת כלי מערכת
- out - אובייקט הפלט הסטנדרטי, כלומר המסך
- println - פעולה שמדפיסה טקסט ואז יורדת שורה
הנקודה-פסיק (;) שבסוף היא חובה בתום כל פקודה ב-Java - אחד ההבדלים
הבולטים לעומת Python או JavaScript.
קומפילציה והרצה
javac Main.java # יוצר Main.class (bytecode)
java Main # מריץ את המחלקה
פלט:
Hello, World!
println מול print
System.out.println("שורה ראשונה"); // מדפיס ויורד שורה
System.out.print("ללא ירידת שורה "); // לא יורד שורה
System.out.print("המשך באותה שורה");
הערות בקוד
// הערה בשורה אחת
/*
הערה בכמה
שורות
*/
/**
* הערת Javadoc - משמשת לתיעוד פונקציות ומחלקות
* @param args ארגומנטים משורת הפקודה
*/
מבנה בסיסי שצריך לזכור
public class ClassName {
public static void main(String[] args) {
// הקוד שלך כאן
}
}
זהו השלד הקבוע - כל תוכנית ב-Java נפתחת במבנה הזה.
בדקו את עצמכם
נסו לענות לבד לפני שאתם פותחים את התשובה.
-
המחלקה הציבורית נקראת
Main. איך חייב להיקרא הקובץ?הצגת התשובה
תשובה ד. ב-Java שם הקובץ חייב להיות זהה לשם המחלקה הציבורית, כולל אותיות גדולות וקטנות.
-
מה ההבדל בין
printlnל-print?הצגת התשובה
תשובה ב. println מוסיף ירידת שורה אחרי הטקסט, ו-print ממשיך באותה שורה.
-
איך מריצים תוכנית שקומפלה ל-
Main.class?הצגת התשובה
תשובה א. לפקודה java מעבירים את שם המחלקה בלבד, בלי הסיומת .class.