doron amir
 
דואר אלקטרוני:
 
 
סיסמה:
 
 
 
 
 
 
לוח פגישות
 
|
 
איזכור סיסמא
 
עברית
 
|
 
english
 
|
 
русский
 
 
 
doron amir
 
קורסים ותרגול
 
עמוד הבית
 
חבילות
הדרכה
 
החשבון שלי
 
אודות
דורון אמיר
 
צור קשר
 
מאגר תרגילים ופתרונות
 
מאמרי גולשים
 
קורס אנדרואיד

הסבר בנושא גישה למחלקות הבסיס (base)

צפיות:
5,935
דירוג:
10
דירוג המאמר:
 
שליחה
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

תחילה נגדיר מחלקה פשוטה המתארת תכונות כלליות של מכשיר סלולרי כל שהוא הכולל נתונים כגון :
דגם המכשיר, פורמט הווידאו וגם נפח ספר הטלפונים.המחלקה כוללת 3 שדות (private) מסוג string
עבור אחסון הנתונים וגם constructor לאתחול השדות.המחלקה כוללת גם מתודה בשם getInfo עבור
בניית string המתאר את נתוני המכשיר המאוחסנים בשדות הנתונים.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    public class Cell
    {
        private string model;
        private string videoFormat;
        private string phoneBook;
 
 
        public Cell(string model,string videoFormat
            ,string phoneBook)
        {
            this.model = model;
            this.videoFormat = videoFormat;
            this.phoneBook = phoneBook;
        }
 
        public string getInfo()
        {
            return String.Format(":{0}:{1}:{2}",
                this.model,this.videoFormat,this.phoneBook);
        }
    }

 


 לאחר הגדרת המחלקה נגדיר מחלקה נוספת אשר נגזרת ממחלקת הבסיס שלנו ( cell) , שם המחלקה החדשה יתאר סוג של מכשיר
 סלולרי כגון :IPhone .מכשיר האייפון הינו סוג של טלפון סלולרי ולכן מתאים לבצע הורשה מתוך מחלקה בעלת נתוני מכשיר סלולרי
 ולייצר מחלקה ספציפית יותר כולל שימוש בקוד שכבר נכתב עבור במחלקת הבסיס (cell).

1
2
3
4
5
6
7
    public class iPhone:Cell
    {
        private string InternalMemory;
        private string OperationSystem;
 
 
    }

 


 בשלב הראשון ניתן לראות את סימול ההורשה ( : ) נקודותיים אשר מסמלים את פעולת ההורשה של מחלקת ה IPhone ממחלקת ה cell
 במחלקה החדשה הגדרנו שדות אשר אופיניים למחלקה iphone בנוסף למחלקה cell .כעת נוסיף constructor אל המחלקה החדשה
 ה constructor יקבל כפרמטרים את כל הנתונים הנדרשים עבור הטלפון הסלולרי ,כלומר גם את הנתונים עבור אתחול השדות של המחלקה
 iphone וגם את הנתונים עבור אתחול השדות ב cell , את הנתונים עבור אתחול הנתונים שירשנו מ cell נשלח ע"י המילה השמורה base
 אשר מיועדת עבור הפנייה את מחלקת הבסיס . (אנו משתמשים במחלקת הבסיס כי כבר יש שם constructor המאתחל את הנתונים של
 מחלקת האב ולכן אין צורך להגדיר שוב את פעולת האתחול אלא פשוט לקרוא ל constructor של מחלקת הבסיס ולמסור אליו את נתוני
האתחול של השדות אשר שייכים במקור למחלקת הבסיס.ניתן לראות בקוד הנ"ל את בניית ה constructor עבור המחלקה הנגזרת כולל שימוש
 במילה השמורה base וכולל אתחול שדות הנתונים השייכות למחלקה iphone.

1
2
3
4
5
6
7
8
9
    public iPhone(string InternalMemory, 
            string OperationSystem,string model
            ,string videoFormat,
            string phoneBook):base(model,
            videoFormat,phoneBook)
        {
            this.InternalMemory = InternalMemory;
            this.OperationSystem = OperationSystem;
        }


 כאשר אנו נייצר אובייקט מהמחלקה iphone ישלחו הפרמטרים השייכים ל base אל מחלקת האב ויאתחלו את השדות של מחלקת האב
 בנתונים שנשלחו. לאחר מכן יתבצע ה constructor של המחלקה iphone ויאתחל את השדות השייכים למחלקה.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    public class iPhone:Cell
    {
        private string InternalMemory;
        private string OperationSystem;
 
        public iPhone(string InternalMemory, 
            string OperationSystem,string model
            ,string videoFormat,
            string phoneBook):base(model,
            videoFormat,phoneBook)
        {
            this.InternalMemory = InternalMemory;
            this.OperationSystem = OperationSystem;
        }
        public string Info()
        {
            string cellInfo= base.getInfo();
 
            return String.Format("{0}:{1}:{2}",
                this.InternalMemory, 
                this.OperationSystem, cellInfo);
        }
    }

 


 ניתן לראות בקוד תוספת של מתודה בשם info .המתודה info עושה שימוש במתודה  getInfo של מחלקת הבסיס אשר מייצרת string
 הכולל את ערכי השדות של מחלקת האב . המתודה info משבצת את המידע ביחד עם נתוני המחלקה הנגזרת ו יוצרת string הכולל את 
 נתוני מכשיר ה -  iphone הכוללים את נתוני המחלקה cell.

 הקוד המלא:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
  public class Cell
    {
        private string model;
        private string videoFormat;
        private string phoneBook;
 
 
        public Cell(string model,string videoFormat
            ,string phoneBook)
        {
            this.model = model;
            this.videoFormat = videoFormat;
            this.phoneBook = phoneBook;
        }
 
        public string getInfo()
        {
            return String.Format(":{0}:{1}:{2}",
                this.model,this.videoFormat,this.phoneBook);
        }
    }
 
    public class iPhone:Cell
    {
        private string InternalMemory;
        private string OperationSystem;
 
        public iPhone(string InternalMemory, 
            string OperationSystem,string model
            ,string videoFormat,
            string phoneBook):base(model,
            videoFormat,phoneBook)
        {
            this.InternalMemory = InternalMemory;
            this.OperationSystem = OperationSystem;
        }
        public string Info()
        {
            string cellInfo= base.getInfo();
 
            return String.Format("{0}:{1}:{2}",
                this.InternalMemory, 
                this.OperationSystem, cellInfo);
        }
    }
 
 
    class Program
    {
        static void Main(string[] args)
        {
 
            iPhone ipone1 = new iPhone("500MB", "IOS3", "IPHONE-5",
                "3GP\\MP4", "1500");
            Console.WriteLine(ipone1.Info());
        }
    }

 


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



 לסיום ניתן לראות את נתוני האובייקט מסוג iphone אשר מורכבים מנתוני ה cell וה iphone . 

נכתב על-ידי: קובי אטיאס
דירוג המאמר:
 
שליחה
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
אפליקציות אפל
אפליקציות אנדרואיד
001 קורס אנדראויד באתר