אובייקטים ומחלקות חלק 1 הגדרת מחלקה ותכונות • הגדרת מחלקה חדשה. • יצירת אובייקטים מהמחלקה. • הגדרת תכונות למחלקה. • גישה לתכונות המחלקה. הגדרת מחלקה שם המחלקה מתחיל public class MyClass באות גדולה. { } • הקוד נשמר בקובץ MyClass.java public class Tester { public static void main(String[] args) { MyClass m = new MyClass(); } } MyClass יצירת אובייקט מהמחלקה ערימה מחסנית 1012 m MyClass ;)(MyClass m = new MyClass 1012 ערימה m2 null מחסנית ;MyClass m2 2000 MyClass ;)(new MyClass הפקודה newהיא הפקודה היחידה שיוצרת אובייקטים בג'אווה .כלומר ,אם לא הופיעה הפקודה הזאת ,לא נוצר אובייקט. מושגי יסוד ביצירת אובייקטים • • • • כדי ליצור אובייקט יש להשתמש בפקודה new שיוצרת אובייקט בערימה. כתובת האובייקט מוצבת למשתנה במחסנית. אם נוצר רק משתנה בלי אובייקט ,המשתנה מכיל את הערך nullשאומר שכרגע המשתנה לא מצביע על אף אובייקט. אובייקט שאף אחד לא מצביע עליו נמחק מהזיכרון ע"י תהליך שנקרא .Garbage Collector תכונות של מחלקה • מחלקה מתארת ישות כלשהי בעולם ,ולכן היא יכולה להכיל תכונות – שדות שמתארים את האובייקטים. • נניח שנרצה לכתוב מחלקה בשם Personשמייצגת בן אדם. • לכל בן אדם יהיו תכונות של שם ,ושל גיל. תכונה של המחלקה public class Person { ;public String name ;public int age } תכונה היא בעצם הגדרה של משתנה רגיל ,כאשר מקדימים לו את מאפיין הגישה – – Access Modifier שקובע מי רשאי לגשת לתכונה .כרגע ,מאפיין הגישה מסומן כ ,public-כלומר ,כל מי שרוצה רשאי לגשת לתכונות. public class Person { public String name; public int age; } ערימה Person name age Yossi 17 public class Tester { public static void main(String[] args) { Person p1 = new Person(); p1.name = “Yossi”; p1.age = 17; } } מחסנית 1012 1012 p1 public class Person { public String name; public int age; } ערימה Person name age Yossi 17 מחסנית 1012 1012 public class Tester { public static void main(String[] args) { Person p1 = new Person(); לאage שגיאת קומפילציה – המשתנה age = 1; מוכר בלי הקשר של אובייקט – "הגיל } ."?של מי } p1 public class Person { public String name; public int age; } ערימה Person name age } } 1012 1012 17 Person public class Tester name age { public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person(); p1.age = 17; p2.age = 34; מחסנית 34 p1 1030 1030 p2 תרגיל • כתבו מחלקה בשם Bookשמייצגת ספר. • למחלקה יהיו התכונות הבאות: – שם הספר – מסוג .String – מספר העמודים – מסוג .int – מחיר הספר – מסוג .double • כתבו תוכנית mainבמחלקה אחרת ,צרו אובייקטים מסוג Bookוהציבו בתכונות שלהם נתונים.
© Copyright 2024