Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "המרכז להוראת המדעים © האוניברסיטה העברית בירושלים 1 מחלקות ועצמים 1."— Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

19 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים 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 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים 20 השיטה : " אחזר כמות נוכחית ()" public int getCurrentAmount( ) הרשאת גישה ערך החזרה שם השיטה סוגריים המסמנים שיטה ומכילים פרמטרים אם יש

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

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

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

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

26 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים 26 מימוש השיטה : } public void pourInto(Bucket bucket2, double amountToPour){ /** * 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 */ /*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 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים 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 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים 28 toString() שיטה לבניית מחרוזת המייצגת את העצם : public String toString{ return “Bucket:\ncapacity: ”+this.capacity+ “\ncurrent amount: ”+this.currentAmount+”\n”; }

29 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים 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 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים 30 לסיכום : איך זה נראה ביחד ? …

31 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים 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

32 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים 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 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים 33 עיקרון ה הכמסה מדוע התכונות פרטיות והשיטות פומביות? 1 ) כך אפשר לשנות את המימוש בלי לגעת בממשק 2 ) כך מתאפשרת גישה מבוקרת לתכונות

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

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

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


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

Similar presentations


Ads by Google