8.7.2019

.NET + תכנות מונחה עצמים


7.7 ד' תמוז
NET.  - דוט נט,  היא פלטפורמה מבית מיקרוסופט המשמשת לשם ייצור ופיתוח של תוכנות.
הפלטפורמה מספקת שיכבה וירטואלית  - המתכנת יכול לכתוב בכל שפה שרוצה והתוכנה תתאים לכל פלטפורמה (חלונות\לינוקס\איפון) והשכבה הווירטואלית ממירה את הפקודות לשפת המחשב 


Framework – ספריות עבודה. התכניתן לא צריך לכתוב קוד עבור כל דבר אלא משתמש בספקיות קוד מובנות לוג' לא צריך לכתוב קוד שנותן פקודות למדפסת אלא משתמשים בפקודה שקייימת 


C#  - שפה שפותחה ע"י מייקרוסופט כחלק מפרויקט דוט נט 


  CILCommon Intermediate Language שפת ביניים שאילה מתקמפל הקוד ובזמן הריצה של התוכנית (Runtime) מהודרת לשפת מכונה


Common Language Runtime - CLR - – הקוד המהודר בשפת תוכנה 


Native – קוד בשפת הCPU


Managed Code קוד מנוהל – קוד שממומר בהרצה לשפת מערכת ההפעלה הרלוונטית והיא מבצעת את הפעולות הנדרשות להבדיל מקוד לא מנוהל שניגש ישירות לרכיבים של המחשב


מתוך וויקיפדיה - דוט נט היא שכבת תוכנה של מיקרוסופט שבאמצעותה מקודדות ומורצות תוכנות אחרות. שכבה זו מספקת לתוכנות שרצות מעליה סט כלים ושירותים כגון ניהול זיכרון, שליטה בהתקני קלט/פלט, הצפנת הודעות וכולי, כך שהמתכנתים אינם צריכים לכתוב ספריות עזר המספקות שירותים אלו אלא רק את הלוגיקה העיקרית של התוכנה. בנוסף, שימוש בשכבת תוכנה זו (הנקראת גם "סביבה וירטואלית") מאפשר להריץ תוכנות על פלטפורמות שונות (חלונות, לינוקס, יוניקס, טאבלטים, טלפונים סלולריים וכולי) בלי צורך בשינוי קוד התוכנה, כי התוכנה "מדברת" רק עם הסביבה הווירטואלית, וסביבה זו כבר יודעת איך לדבר עם הפלטפורמה הספציפית.

מבנה הקוד

מחלקה – תבנית ליצירת אובייקט.  במחלקה מגדירים משתנים \ פונקציות ששייכות לכלל התוכנית

State - אובייקטים \ מחלקות מנהלים State – אוסף של ערכים רגעי של משתנים. (ניהול הערכים שבתוך המשתנים)

 Type - הגדרת סוג המשתנה. סוג המשתנה קובע איזה ערכים ניתן להכניס למשתנה 

  קיימים 5 סוגים של Type
Class - interface – enum – Structures - delegate
·         
  • פונקציות שבאובייקט נועדו להגדיר \ לנהל את המשתנים שבאובייקט
  • פונקציות שבתוך המחלקה נועדו להגדיר את המשתנים שבמחלקה
מתודה =  פונקציה רגילה 

בנאי – למדנו בעבר ולכן לא נרחיב בהסבר  מה זה  

  •  בנאי ברירת מחדל שמאתחל את המשתמשים
  •  ניתן ליצור בנאי שישמש לאתחול
  • ניתן ליצור יותר מבנאי אחד והמערכת יודעת לפי הנתונים שהוכנסו לאיזה לקרוא
  •  ניתן לשרשר בנאי אחד או יותר ע"מ למנוע כתיבה כפולה (דוג' מפורטת בהמשך)

תכונותProperties  - הגדרת תכונות למשתנה -  get \ set  - בקריאה למשתנה תבצע X ובכתיבה למשתנה תבצע Y (לדוג' תבדוק את הנתון)

 Namespace - ניתן להגדיר 2 Namespace אחד בתוך השני
  • בתוך Namespace יש   class בתוכו  members  


Interface (ממשק) הינו מבנה לוגי מופשט (אבסטרקטי) המכיל רק הצהרות. – לא מעניין אותו איך עושים אלא רק מה


Enum – בנית רשימה של ערכים – עוזר להבנת הקוד ולמנוע שגיאות.  לדוג' שיש לתוכנה מספר קודים עבור הערכים אם נכתוב את הקוד כשנחזור שוב לקוד או שתוכנתן אחר יקרא אותו לא היה מובן למה הכוונה
enum Month

{
    January, 
    February, 
    March, 
    April, 
}
 
הערכים יקבלו את הקוד מ1 והלאה
במידה ונגדיר את הראשון כ10 השני היה 11 וכן הלאה - 10  = January



O.O – תכנות מונחה עצמים

מורכב מ3 יסודות
כימוס – Encapsulation            הפעולה   = data hiding                  התוצאה = הגנה על הנתונים
הורשה Inheritance       הפעולה   = ליצור היררכיה של Encapsulation    התוצאה = reuse
רב צורתיות Polymorphism   הפעולה -  יצירת היררכיה של הפשטות     תוצאה – קוד יותר איכותי
הסבר מורחב ניתן למצוא בקישור הבא    http://webmaster.org.il/articles/csharp-oop-intro


קונסטרקטור -  דוג'  לקוד שהראשון מאתחל ערכי ברירת מחדל והשני מאתחל לפי הערך שנשלח
כשיוצרים את האובייקט התוכנה מזהה לפי סוגי הנתונים שנשלחו את הקונסרקטור השני בתחילת ההרצה שלו הוא מקבל פקודה ללכת לקונסרקטור הראשון ולבצע את הפעולות שהוגדרו ואח"כ תתבצע ההשמה של הקונסרקטור

public person()
        {
            this.name = "not set";
            this.phone = "05x-xxxxxxx";
            this.age = 18;
        }


            public person (string name):this()
        {
            this.name = name;
        }
הורשה
כשיש אובייקט שמוגדר עם הורשה ניתן להשתמש בקונסרקטור שהוגדר ב
        public student(string name):base(name)
base = האובייקט אב



הגדרת אובייקט בן ברמת אב
person p = new student("dodo");
במקרה כזה נקבל אובייקט סטודנט אבל בהתייחסות לפי נתוני אב בלבד – לא נוכל לקבל את התכונות של הסטודנט
 בשביל להגדיר את האובייקט סטודנט ברמה של סטודנט נבצע השמה לתוך משתנה אחר
student s = p as student;
   




        Console.WriteLine(s is student);


שיעורי בית – שהAGE   יהיה חישוב של הגיל – היום  מינוס תאריך הלידה

אין תגובות:

הוסף רשומת תגובה

MVC

Web api Front end (צד משתמש) שולח http request     כל אתר מכל מכשיר יכול להתחבר ולקבל נתונים (אין אפליקציה) ולא משנה באיזו שפה ה...