המחלקה System
מהי המחלקה System?
System היא מחלקה מובנית ב-Java שמספקת גישה לרכיבי המערכת: פלט למסך, קלט מהמשתמש, שעון
מערכת, ועוד. היא נמצאת בחבילה java.lang ולכן אין צורך לייבא אותה.
System.out - פלט למסך
System.out.println("טקסט עם ירידת שורה");
System.out.print("טקסט בלי ירידת שורה");
System.out.printf("טקסט מעוצב: %d\n", 42);
println - הדפסה עם ירידת שורה
System.out.println("שורה ראשונה");
System.out.println("שורה שנייה");
פלט:
שורה ראשונה
שורה שנייה
print - בלי ירידת שורה
System.out.print("a");
System.out.print("b");
System.out.print("c");
פלט:
abc
printf - הדפסה מעוצבת
int age = 25;
String name = "נפתלי";
double price = 19.99;
System.out.printf("שם: %s, גיל: %d, מחיר: %.2f%n", name, age, price);
מציינים נפוצים:
- %d - מספר שלם
- %f - מספר עשרוני (%.2f = 2 ספרות אחרי הנקודה)
- %s - מחרוזת
- %c - תו
- %b - בוליאני
- %n - ירידת שורה (עדיף על \n כי מותאם למערכת ההפעלה)
System.err - פלט שגיאות
ערוץ פלט נפרד לשגיאות:
System.err.println("שגיאה: הקובץ לא נמצא");
לעיתים הטרמינל צובע את הפלט הזה באדום.
System.in - קלט מהמשתמש
System.in הוא זרם הקלט הסטנדרטי, אבל משתמשים בו בדרך כלל דרך Scanner (השיעור הבא):
Scanner scanner = new Scanner(System.in);
System.currentTimeMillis - זמן נוכחי
מחזיר את מספר האלפיות-שנייה שעברו מאז 1.1.1970 (Unix epoch):
long start = System.currentTimeMillis();
// משהו שאורך זמן
for (int i = 0; i < 1000000; i++) { }
long end = System.currentTimeMillis();
System.out.println("זמן ריצה: " + (end - start) + " ms");
System.nanoTime - זמן בדיוק גבוה
long start = System.nanoTime();
// ...
long end = System.nanoTime();
System.out.println("זמן: " + (end - start) + " ננו-שניות");
System.exit - יציאה מהתוכנית
System.exit(0); // יציאה תקינה
System.exit(1); // יציאה עם שגיאה
System.getProperty - מידע על המערכת
System.out.println(System.getProperty("os.name")); // Windows 11
System.out.println(System.getProperty("user.name")); // שם המשתמש
System.out.println(System.getProperty("java.version")); // גרסת Java
שרשור מחרוזות בפלט
String name = "דוד";
int age = 30;
System.out.println("שם: " + name + ", גיל: " + age);
אפשר גם printf:
System.out.printf("שם: %s, גיל: %d%n", name, age);
בדקו את עצמכם
נסו לענות לבד לפני שאתם פותחים את התשובה.
-
לאן כותב
System.err.println?הצגת התשובה
תשובה ג. System.err הוא זרם נפרד לשגיאות, שהטרמינל לעיתים מציג באדום.
-
מה עושה
System.currentTimeMillis()?הצגת התשובה
תשובה ד. מודדים זמן ריצה של קטע קוד כהפרש בין שתי קריאות.