Presentation is loading. Please wait.

Presentation is loading. Please wait.

ניתוח מערכות מידע תכנות ב C#

Similar presentations


Presentation on theme: "ניתוח מערכות מידע תכנות ב C#"— Presentation transcript:

1 ניתוח מערכות מידע תכנות ב C#
מחלקות

2 חשבון הבנק – מחלקה ואוביקט (תזכורת)
חשבון הבנק – מחלקה ואוביקט (תזכורת) אוביקטים (המימוש) מחלקה (הרעיון/תבנית)

3 נראה תחילה איך מייצרים מחלקה

4 קוד C# למימוש מחלקה BankAccount
using System; public class BankAccount { private String name; private float balance; public BankAccount(String name) { //constructor body } public float getBalance( ) { //method body } public void deposit(float sum) public void draw(float sum) } תכונות בנאי (constructor) פעולה (מתודה)

5 המימוש המלא – חלק 1 using System; public class BankAccount {
//attributes private String _name; private float _balance; //constructor public BankAccount(String name) _name = name; _balance = 0; } המשך בשקף הבא

6 המימוש המלא – חלק 2 //methods public float getBalance( ) {
return _balance; } public void deposit(float sum) _balance += sum; public void draw(float sum) _balance -= sum;

7 מתודות - דגשים דגשים

8 כותרת המתודה הצהרת מתודה מתחילה בכותרת
סוג גישה public int calc (int num1, int num2) שם המתודה רשימת פרמטרים רשימת הפרמטרים מגדירה עבור כל פרמטר את הטיפוס שלו ואת שמו טיפוס הערך המוחזר

9 גוף המתודה לאחר הכותרת מגיע גוף המתודה
public int calc (int num1, int num2) { int sum = num1 + num2; return sum; } sumהוא משתנה לוקלי הוא מיוצר בכל פעם שהמתודה נקראת ומושמד כאשר מסיימת להתבצע הטיפוס שמחזירים צריך להיות זהה לטיפוס הערך המוחזר

10 פקודת return טיפוס הערך המוחזר של מתודה קובע את הטיפוס של הערך שיוחזר למקום ממנו נקראה המתודה למתודה שלא מחזירה ערך יש טיפוס ערך מוחזר void public int calc (int num1, int num2) { int X; // do something return X; } public void calc (int num1, int num2) { // do something }

11 פקודת return (המשך) פקודת ה-return קובעת את הערך המוחזר
הערך שיש ב X יוחזר ניתן גם להחזיר ערך של ביטוי הערך המוחזר ע"י הביטוי צריך להתאים לטיפוס הערך המוחזר public int calc (int num1, int num2) { int X; // do something return X; } public bool calc (int num1, int num2) { return num1<num2; }

12 בנאי - contructor בנאי (constructor) היא מתודה מיוחדת
לכל מחלקה יש להגדיר בנאי שם הבנאי זהה לשם המחלקה הבנאי אינו מחזיר ערך הבנאי נקרא באופן אוטומטי כאשר אוביקט נוצר בדרך כלל נבצע פעולות של איתחול בבנאי יתכנו מספר בנאים למחלקה אחת לכל אחד מהבנאים יש לקבוע רשימת פרמטרים שונה

13 בנאים בנאי יכול להופיע ללא פרמטרים או עם פרמטרים
public class BankAccount { private String _name; private float _balance; //constructor without parameters public BankAccount() _name = null; _balance = 0; } //constructor with parameters public BankAccount(String name) _name = name; בנאי יכול להופיע ללא פרמטרים או עם פרמטרים אפשר להגדיר מספר בנאים, אם יש לכל אחד פרמטרים שונים מספר שונה של פרמטירם או טיפוסים שונים של פרמטרים

14 בנאים - ערך מוחזר לבנאים אין ערך מוחזר!!! אפילו לא void
טעות נפוצה – לתת טיפוס לבנאי גורם לבנאי להיות מתודה רגילה במידה ולא הוגדר בנאי למחלקה: יוגדר באופן אוטומטי בנאי ריק לבנאי הריק אין פרמטרים הבנאי הריק לא מבצע שום פעולה

15 שימוש במחלקות ואוביקטים
דגשים

16 יצרנו את המחלקה, עכשיו נרצה לייצר אוביקטים
(המימוש)

17 קוד C# ליצירת אוביקטים של BankAccount
using System; public class test { static void Main(String[] args) BankAccount Account1 = new BankAccount("Tamar"); BankAccount Account2 = new BankAccount("Moshe"); Account1.deposit(20000); Account2.deposit(100); Account2.draw(600); } יצירת אוביקטים שימוש בפעולות

18 יצירת אוביקטים משתנה מכיל טיפוס בסיסי (int, float …) או הצבעה לאוביקט
ניתן להצהיר על משתנה מטיפוס מחלקה כלשהי Circle circ1; לא נוצר אוביקט בהצהרה הנ"ל!! המשתנה מכיל כתובת בזכרון עבור האוביקט יש לייצר את האוביקט במפורש ע"י שימוש ב new המבצע קריאה לבנאי circ1 = new Circle (); Circle circ1 = new Circle (); ניתן לשלב את שתי הפעולות ביחד: diameter = 30; xPosition = 20; yPosition = 60; color = "blue"; isVisible = false; circ1

19 הפעלת מתודות ברגע שיצרנו אוביקט אפשר להשתמש באופרטור '.' כדי להפעיל מתודות שלו. int size=0; Circle circ1; circ1 = new Circle(); circ1.moveHorizontal(10); size = circ1.getSize(); מתודה יכולה להחזיר ערך (כמו getSize() ) ניתן להשתמש בערך לביצוע השמה או בתוך ביטוי אפשר לחשוב על קריאה למתודה כ"הפעלת שירות של המחלקה"

20 העמסה - overloading ראינו כבר שאפשר לייצר כמה בנאים
ניתן לתת הגדרות שונות גם למתודות רגילות העמסה (overloading) – יש מספר מתודות עם אותו שם על החותמת (signature) של המתודה להיות יחודית, כלומר: מספר הפרמטרים, הטיפוס שלהם והסדר שלהם הטיפוס המוחזר אינו חלק מהחותמת כלומר אסור ששני מתודות יבדלו רק ע"י הטיפוס המוחזר

21 העמסה – רשימת הפרמטרים הקומפיילר קובע לאיזה מתודה לקרוא ע"י ניתוח הפרמטרים static float tryMe(int x) { return x + 10; } result = tryMe(25, 5) מי יופעל? static float tryMe(int x, int y) { return x*y; }

22 null null הוא ערך מיוחד עבור אוביקטים
טיפוסים פרימיטיבים (int, float, …) לא יכולים לקבל null מקביל ל Nothing ב VB ניתן לתת לאובייקט ערך null בצורה הבאה: String s = null; אפשר גם לבדוק אם אובייקט מסויים הוא null: if (s == null) // Do something האובייקטים שהוכרזו אך לא אותחלו - מכילים ערך null. ניסיון לבצע פעולה על אובייקט שהוא null יגרור קריסה של התוכנית

23 enum Season {winter, spring, summer, fall};
Enumerated Types משתמשים ב enum כדי להגדיר טיפוס המקבל ערכים מוגדרים מראש שקול ל Enum של VB למשל נגדיר טיפוס שנקרא Season enum Season {winter, spring, summer, fall}; ניתן להגדיר כמה ערכים שנרצה לאחר ההגדרה ניתן להגדיר משתנים מהטיפוס החדש Season time; ולאתחל ערכים time = Season.fall;

24 הוספת מחלקה חדשה (חלק 1)

25 הוספת מחלקה חדשה (חלק 2)

26 הוספת מחלקה חדשה (חלק 3)

27 דוגמא - מחלקה student Student-Example\Student-Example.sln

28 דוגמא להמחשת עבודה עם: UML C#
דוגמא - קלפים דוגמא להמחשת עבודה עם: UML C#

29 משחקי קלפים שלב 1 שלב 2 קלף (Card) חפיסה (Deck) יד (Hand) מלחמה
הגדרת הקלפים קלף (Card) חפיסה (Deck) יד (Hand) שלב 2 הגדרת משחק קלפים מלחמה BlackJack

30 הגדרת המחלקות

31 נגדיר קלף Card מאפייני הקלף מתודות הקלף צורה מספר (חלקם מיוחדים)
החזרת הערך (מספר) של סוג הקלף.  החזרת הערך (מספר) של מספר הקלף. החזרת הערך (מחרוזת) של מספר הקלף. החזרת מחרוזת המייצגת את הקלף.

32 נגדיר חפיסה Deck בשיעורים הבאים

33 נגדיר יד Hand בשיעורים הבאים

34 תרשים UML

35 קוד C# מרכיבי הקוד Card.cs מתאר את המחלקה של קלף
Program-class-Card-only.cs מדגים שימוש במחלקה Card


Download ppt "ניתוח מערכות מידע תכנות ב C#"

Similar presentations


Ads by Google