מילון מונחים
מילון מונחים ב-Java
אוסף מסודר של מונחים שקיבלנו לאורך הקורס - שימושי כמקור עיון מהיר.
JVM / JRE / JDK
| מונח | פירוש | מה כולל |
|---|---|---|
| JVM | Java Virtual Machine | המנוע שמריץ bytecode |
| JRE | Java Runtime Environment | JVM + ספריות הליבה |
| JDK | Java Development Kit | JRE + קומפיילר + כלי פיתוח |
אנלוגיה: JVM = מנוע, JRE = מכונית, JDK = מוסך.
Bytecode
הקוד שהקומפיילר יוצר. לא קוד מכונה רגיל, אלא "ביניים" שה-JVM מתרגם לקוד מכונה של המערכת שעליה הוא רץ. זה מה שמאפשר ל-Java להיות "כתוב פעם אחת, רץ בכל מקום".
Class
מחלקה - יחידת הבנייה הבסיסית ב-Java. תבנית שמתארת מבנה של אובייקט.
Object / Instance
אובייקט או מופע - ישות שנוצרה לפי תבנית של מחלקה. אם
Person היא מחלקה, אז new Person("דוד", 30) הוא אובייקט.
Field
שדה - משתנה שמוגדר בתוך מחלקה. יכול להיות של אובייקט או של המחלקה עצמה (static).
Method
מתודה - פונקציה שמוגדרת בתוך מחלקה. דרך הפעולה של המחלקה.
Constructor
בנאי - מתודה מיוחדת שרצה כשאובייקט נוצר. שמה זהה לשם המחלקה, אין לה טיפוס חזרה.
this
הפנייה לאובייקט הנוכחי - "אני". שימושי כדי להתייחס לשדות של המחלקה.
static
מילת מפתח שמציינת שמשהו שייך למחלקה עצמה, לא לאובייקט ספציפי. משותף לכל האובייקטים.
final
מילת מפתח שמונעת שינוי:
- final int x = 5; - קבוע
- final class C - אי אפשר לרשת
- final void method() - אי אפשר לדרוס
public / private / protected
מילות נגישות:
- public - נגיש מכל מקום
- private - נגיש רק מתוך המחלקה
- protected - נגיש למחלקה, לתת-מחלקות, ולאותה חבילה
- ללא - package-private
Package
חבילה - תיקייה של מחלקות. משמשת לארגון הקוד. מצוין בראש הקובץ:
package com.example.app;
Import
ייבוא - אומר לקומפיילר מאיפה לטעון מחלקות: import java.util.Scanner;
Interface
ממשק - "חוזה" שמחלקה יכולה לממש. מגדיר מתודות בלי לממש אותן.
public interface Drawable {
void draw();
}
public class Circle implements Drawable {
public void draw() { /* ... */ }
}
Abstract
מחלקה מופשטת - מחלקה שאי אפשר ליצור ממנה אובייקט ישירות. משמשת כבסיס לרשת ממנה.
public abstract class Shape {
abstract void draw();
}
Inheritance - ירושה
מנגנון שמאפשר למחלקה לרשת מאפיינים ממחלקה אחרת. extends:
public class Dog extends Animal { }
Polymorphism - פולימורפיזם
היכולת של אובייקט להופיע בצורות שונות. אותה קריאה למתודה יכולה להתנהג שונה באובייקטים שונים.
Encapsulation - הסתרה
הסתרת הפרטים הפנימיים של אובייקט. גישה רק דרך מתודות ציבוריות.
Overloading - העמסה
שתי מתודות באותו שם עם פרמטרים שונים.
int add(int a, int b) { }
double add(double a, double b) { }
Overriding - דריסה
תת-מחלקה מציעה מימוש חדש למתודה שירשה. מסומן ב-@Override.
@Override
public String toString() { return "..."; }
Immutable
אובייקט שלא ניתן לשנות אחרי יצירתו. דוגמה קלאסית: String.
null
"אין הפנייה". משמש לציון היעדר אובייקט. ניסיון להשתמש בהפנייה null יזרוק
NullPointerException.
Exception
חריגה - אירוע חריג בזמן הריצה. אפשר לתפוס עם try/catch.
Stack / Heap
שני אזורי זיכרון:
- Stack - משתנים מקומיים, פרימיטיביים, מסגרות של פונקציות
- Heap - כל האובייקטים שנוצרים עם new
Garbage Collector (GC)
רכיב של ה-JVM שאוסף אובייקטים שלא משתמשים בהם יותר ומשחרר את הזיכרון שלהם.
Primitive Type
טיפוס פרימיטיבי - טיפוס בסיסי שלא אובייקט: int, double,
char, boolean ועוד (8 בסך הכל).
Wrapper Class
מחלקה עוטפת - גרסת-אובייקט של טיפוס פרימיטיבי: Integer,
Double, Character וכו'.
Generics
מנגנון שמאפשר להגדיר טיפוסים "כלליים" שהמשתמש ממלא: List<String>,
Map<String, Integer>.
Collection
מבנה נתונים שמכיל קבוצה של אובייקטים: List, Set, Map.
Array
מערך - רצף של ערכים מאותו טיפוס באורך קבוע.
String
מחלקה שמייצגת טקסט. Immutable.
StringBuilder
מחלקה יעילה לבניית מחרוזות. Mutable.
Scanner
מחלקה לקריאת קלט מהמשתמש או מקבצים.
System.out
זרם הפלט הסטנדרטי (המסך).
main
המתודה שה-JVM מחפש כדי להתחיל את התוכנית:
public static void main(String[] args)
return
יציאה ממתודה, אפשר עם ערך שיוחזר.
break / continue
- break - יציאה מלולאה או switch
- continue - דילוג לאיטרציה הבאה בלולאה
instanceof
בודק אם אובייקט הוא מופע של מחלקה מסוימת:
if (obj instanceof Dog) { }
Cast
המרה בין טיפוסים:
double d = 3.14;
int i = (int) d; // 3
IDE
Integrated Development Environment - סביבת פיתוח משולבת. למשל IntelliJ IDEA, Eclipse, VS Code.
Maven / Gradle
כלי בנייה וניהול תלויות ל-Java.
Javadoc
תיעוד של קוד Java בפורמט מיוחד:
/**
* מתאר את המתודה
* @param name הפרמטר
* @return הערך המוחזר
*/
סיימנו!
זהו סוף הקורס. עברנו מהבסיס ועד לנושאים מתקדמים:
- מבנה תוכנית Java
- טיפוסים, מחרוזות ואופרטורים
- בקרת זרימה ולולאות
- מערכים ואוספים
- פונקציות ואובייקטים
- רקורסיה, קבצים וחריגות
הצעד הבא - תרגול! בנו פרויקטים קטנים, פתרו בעיות אלגוריתמיות, בנו משחקים פשוטים. Java נלמדת הכי טוב דרך כתיבה.
בהצלחה!
בדקו את עצמכם
נסו לענות לבד לפני שאתם פותחים את התשובה.
-
מה זה polymorphism?
הצגת התשובה
תשובה א. למשל רשימה של Shape שמכילה Circle ו-Square, וכל אחד מחשב area() בדרכו.
-
מה זה ירושה (inheritance)?
הצגת התשובה
תשובה ג. המחלקה היורשת מקבלת את מה שיש בהורה ויכולה להוסיף או לשנות.