Presentation is loading. Please wait.

Presentation is loading. Please wait.

האוניברסיטה העברית בירושלים

Similar presentations


Presentation on theme: "האוניברסיטה העברית בירושלים"— Presentation transcript:

1 האוניברסיטה העברית בירושלים
מחלקות ועצמים 1 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

2 האוניברסיטה העברית בירושלים
מה בתפריט? * הצהרה על מחלקה * הצהרה על תכונות * הגדרת שיטה-בונה * יצירת עצמים בעזרת שיטה-בונה * פנייה לתכונות * הגדרת שיטות * קריאה לשיטות המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

3 האוניברסיטה העברית בירושלים
הצהרה על מחלקה public class <שם> { הגדרת תכונות ושיטות { המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

4 האוניברסיטה העברית בירושלים
מבנה תוכנית public class Car{ } public class Boy{ } public class Test{ public static void main(..){ } public class Doll{ } המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

5 האוניברסיטה העברית בירושלים
שוליית הקוסם המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

6 האוניברסיטה העברית בירושלים
המחלקה "דלי" capacity תכונות: - קיבולת - כמות נוכחית currentAmount המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

7 האוניברסיטה העברית בירושלים
הצהרה על מחלקה חדשה מסמן הגדרת מחלקה הרשאת גישה שם המחלקה public class Bucket { } המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

8 האוניברסיטה העברית בירושלים
הצהרה על תכונות public class Bucket{ } //the total capacity of the bucket (in liters): //the current amount of water in the bucket (in liters): private int capacity; private double currentAmount; הרשאת גישה פרטית שם התכונה טיפוס התכונה המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

9 המחלקה Bucket והעצמים מסוגה
Bucket b1 public class Bucket{ private int capacity; private double currentAmount; } Bucket b2 Bucket b3 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

10 האוניברסיטה העברית בירושלים
השיטה-הבונה! public class Bucket{ private int capacity; private double currentAmount; public Bucket (int capacity){ this.capacity = capacity; this.currentAmount = 0; } שם השיטה = שם המחלקה המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

11 האוניברסיטה העברית בירושלים
שימוש בשיטה-הבונה הצהרה על משתנה חדש public static void main(String[] args){ Bucket moshe ; moshe = new Bucket (4); } קריאה לשיטה-הבונה במחלקה Bucket המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

12 האוניברסיטה העברית בירושלים
Bucket moshe הצהרה על משתנה שהוא הפניה מטיפוס Bucket. הפנייה זו יכולה להחזיק עצם מטיפוס Bucket. כל עוד היא אינה מאותחלת על ידי new יושב בה הערך null. Bucket moshe null המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

13 שלב א': מקצה מקום בזיכרון עבור דלי חדש
new Bucket (4) שלב א': מקצה מקום בזיכרון עבור דלי חדש int capacity int currentAmount המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

14 שלב ב': מבצעת את השיטה הבונה שכתבנו (אתחול התכונות)
new Bucket (4) public Bucket (int capacity){ this.capacity = capacity; this.currentAmount = 0; } שלב ב': מבצעת את השיטה הבונה שכתבנו (אתחול התכונות) int capacity int currentAmount 4 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

15 האוניברסיטה העברית בירושלים
moshe = new Bucket (4) int capacity int currentAmount moshe 4 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

16 האוניברסיטה העברית בירושלים
תוכנית ראשית קובץ TestBucket.java קובץ Bucket.java public class TestBucket { public static void main (String[] args) { Bucket bucket1 = new Bucket (8); Bucket bucket2 = new Bucket (10); int cap1 = bucket1.capacity; } public class Bucket{ private int capacity; private double currentAmount; public Bucket (int capacity){ this.capacity = capacity; this.currentAmount = 0; } אסור – private!!! המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

17 השיטה "אחזר קיבולת()" public int getCapacity( ) ערך החזרה שם השיטה
סוגריים המסמנים שיטה ומכילים פרמטרים אם יש הרשאת גישה public int getCapacity( ) המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

18 האוניברסיטה העברית בירושלים
מימוש השיטה /** * returns the capacity of the bucket in liters */ } public int getCapacity( ){ return this.capacity; שם התכונה פניה על ידי סימון הנקודה החזר האובייקט הנוכחי המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

19 שימוש בשיטה "אחזר קיבולת()"
public class Bucket{ private int capacity; private double currentAmount; public Bucket (int capacity){ this.capacity = capacity; this.currentAmount = 0; } public int getCapacity(){ return this.Capacity; public class TestBucket { public static void main (String[] args) { Bucket bucket1 = new Bucket (8); Bucket bucket2 = new Bucket (10); int cap1 = bucket1.getCapacity(); } המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

20 השיטה: "אחזר כמות נוכחית()"
ערך החזרה שם השיטה סוגריים המסמנים שיטה ומכילים פרמטרים אם יש הרשאת גישה public int getCurrentAmount( ) המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

21 האוניברסיטה העברית בירושלים
מימוש השיטה /** * returns the capacity of the bucket in liters */ } public int getCurrentAmount( ){ return this.currentAmount; שם התכונה פניה על-ידי סימון הנקודה החזר האובייקט הנוכחי המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

22 השיטה "מלא דלי (כמות למלא)"
סוגריים עגולים בהם מוצהר פרמטר אחד ערך החזרה הריק הרשאת גישה public void fill (double amountToFill) שם השיטה המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

23 האוניברסיטה העברית בירושלים
מימוש השיטה /** * fills the bucket with the given amount of liquid */ } public void fill (double amountToFill){ this.currentAmount = this.currentAmount + amountToFill; this.currentAmount + = amountToFill; double newAmount = this.currentAmount + amountToFill; if (newAmount <= this.capacity){ this.currentAmount = newAmount; } else{ this.currentAmount = this.capacity; המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

24 קריאה לשיטה "מלא דלי (כמות למלא)"
public class TestBucket { public static void main (String[] args) { Bucket bucket1 = new Bucket (8); Bucket bucket2 = new Bucket (10); int cap1 = bucket1.getCapacity(); bucket1.fill (cap1); } המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

25 השיטה: "העבר נוזל לדלי שני (הדלי השני, הכמות להעביר) "
השיטה: "העבר נוזל לדלי שני (הדלי השני, הכמות להעביר) " הרשאת גישה סוגריים עגולים בהם מוצהרים שני פרמטרים ערך ההחזרה הריק public void pourInto (Bucket bucket2, double AmountToPour ) שם השיטה המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

26 האוניברסיטה העברית בירושלים
מימוש השיטה: /** * pours the given amount of liquid from this bucket to bucket2 * if the amount to pour is larger than this bucket’s current amount, * the method will pour all of current amount, and not more */ } public void pourInto(Bucket bucket2, double amountToPour){ /*if the amount to pour is bigger than current amount, set it to current amount:*/ if(amonutToPour > this.currentAmount){ amountToPour = this.currentAmount; } //subtract amount you are pouring from current amount: this.currentAmount = this.currentAmount – amountToPour; //add amount into bucket2: bucket2.fill (amountToPour); המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

27 קריאה לשיטה "מלא דלי (כמות למלא)"
public class TestBucket { public static void main (String[] args) { Bucket bucket1 = new Bucket (8); Bucket bucket2 = new Bucket (10); bucket1.pourInto (bucket2, 3); int cur1 = bucket1.getCurrentAmount(); int cur2 = bucket2.getCurrentAmount(); } המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

28 האוניברסיטה העברית בירושלים
toString() שיטה לבניית מחרוזת המייצגת את העצם: public String toString{ return “Bucket:\ncapacity: ”+this.capacity+ “\ncurrent amount: ”+this.currentAmount+”\n”; } המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

29 האוניברסיטה העברית בירושלים
שימוש ב – toString() public class TestBucket { public static void main (String[] args) { Bucket bucket1 = new Bucket (8); Bucket bucket2 = new Bucket (10); System.out.println (bucket1.toString()); System.out.println (bucket2.toString()); } המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

30 האוניברסיטה העברית בירושלים
לסיכום: איך זה נראה ביחד? … המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

31 האוניברסיטה העברית בירושלים
/** This class represents a bucket*/ public class Bucket{ //attributes: private int capacity; private int currentAmount; //constructor: /**constructs a new bucket */ public Bucket (int capacity){ this.capacity = capacity; this.currentAmount = 0; } /regular methods : /** returns the …*/ public void getCapacity(){ } //end of class לדבר על main המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

32 האוניברסיטה העברית בירושלים
השיטה הראשית public class TestBucket { public static void main (String[] args) { Bucket bucket1 = new Bucket (8); Bucket bucket2 = new Bucket (10) bucket1.fill (6); bucket2.pourInto(bucket1,4); int litter = bucket2.getCapacity(); System.out.println (litter); } המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

33 האוניברסיטה העברית בירושלים
עיקרון ההכמסה מדוע התכונות פרטיות והשיטות פומביות? 1) כך אפשר לשנות את המימוש בלי לגעת בממשק 2) כך מתאפשרת גישה מבוקרת לתכונות המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

34 שלבי העבודה בבניית מחלקה
תכנון המחלקה (אילו תכונות ושיטות?) הצהרה על מחלקה הצהרה על התכונות מימוש השיטה-הבונה מימוש השיטות האחרות בדיקת המחלקה (שיטה ראשית) המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

35 סיכום מושגים ומילים שמורות:
אובייקט נוכחי this הגדרת מחלקה class החזר return ערך ההחזרה הריק void חדש new פומבי public פרטי private סימון הנקודה dot notation הרשאת גישה access specifier חתימה signature כותרת המחלקה class heading המרכז להוראת המדעים © האוניברסיטה העברית בירושלים

36 האוניברסיטה העברית בירושלים
- סוף - המרכז להוראת המדעים © האוניברסיטה העברית בירושלים


Download ppt "האוניברסיטה העברית בירושלים"

Similar presentations


Ads by Google