الرئيسية > برمجة > أنواع البيانات في البرمجة الكائنية

أنواع البيانات في البرمجة الكائنية


السلام عليكم و رحمة الله و بركاته
في هذا الدرس إن شاء الله سنتعرف على أنواع البيانات في البرمجة الكائنية من حيث الإستخدام و صلاحيات الوصول .
في PHP 5 توجد 3 أنواع من البيانات (أقصد البرمجة الكائنية) الأولى و هي :
public :
هذا النوع عند تعريف به methode أو خاصية في الكائن فإنك بهذا تسمح لأي كان بالوصول إلى هذه البيانات كمثال واقعي لو أنك جعلت حاسوبك من دون كلمة السر فإن أي شخص يستطيع إستعمال حاسبك
أما في البرمجة فإنك تتيح لأي كان بتعديل قيمتها .

مثال :

1<?php
2class DataType
3 {
4  public $data = “السلام عليكم و رحمة الله و بركاته”;;
5  public function GetData()
6   {
7    echo $this->data;
8   }
9 }
10$access = new DataType();
11$access->GetData();
12$access->data=”و عليكم السلام و رحمة الله و بركاته”;
13$access->GetData();
14?>

السطر 11 إستدعينا الطريقة GetData فطبعت لنا ماتحتويه قيمة الخاصية data أما في السطر 12 فقد غيرنا قيمة الخاصية data ثم إستدعينا الطريقة GetData فتغيرت القيمة المطبوعة .
private :
هذا النوع لايسمح لك بإستعمال أية طريقة أو خاصية من خارج الفئة أو إستعمالها عند إشتقاق فئة  أي أن الخاصية ستكون فقط الفئة نفسها لا غير ،سنعدل على المثال السابق و نجعل الخاصية data$ private .
ستظهر مثل هذه الرسالة :

1<?php
2class DataType
3 {
4  public $data = “السلام عليكم و رحمة الله و بركاته”;
5  public function GetData()
6   {
7    echo $this->data;
8   }
9 }
10$access = new DataType();
11$access->GetData();
12$access->data=”و عليكم السلام و رحمة الله و بركاته”;
13$access->GetData();
14?>

Fatal error: Cannot access private property DataType::$data in OOP(3).php on line 12
الحل هنا هو تغيير الخاصية data$ عن طريق تمرير لدالة ما وسيط يستهدفها .

مثال :

1<?php
2class DataType
3 {
4  private $data = “السلام عليكم و رحمة الله و بركاته”;
5  public function SetData($sDT)
6   {
7    $this->data = $sDT;
8   }
9  public function GetData()
10   {
11    echo $this->data;
12   }
13 }
14$access = new DataType();
15$access->GetData();
16$access->SetData(“و عليكم السلام و رحمة الله و بركاته”);
17$access->GetData();
18?>

أولا عرفنا طريقة بإسم ()SetData السطر 5 مهمتها تغيير قيمة الخاصية data$ بعدها إستعملنا الطريقة ()GetData لطباعة قيمة الخاصية data$ في السطرين 15 و 17 ،لاحظ إستعمال الطريقة SetData في السطر 16 لتغيير قيمة الخاصية Data .
مثال في الإشتقاق :

1<?php
2class DataType
3 {
4  private $data = “السلام عليكم و رحمة الله و بركاته”;
5  public function GetData()
6   {
7    echo $this->data;
8   }
9 }
10class Tprivate extends DataType
11 {
12  public function echoData()
13   {
14    echo $this->data;
15   }
16 }
17$access = new Tprivate();
18$access->echoData();
19?>

النتيجة لن تكون أي شيء ،هذا بإستخدام مفسر PHP 6 إصدارات ماقبل ذلك من المفروض أن تعطي نتيجة undifined .
protected :
نفس العمل مع الprivate إلأ أن هذه تمتاز بأنك تستطيع الوصول إلى أي خاصية من الفئة المشتقة على عكس private ،تعديل بسيط على المثال السابق .

1<?php
2class DataType
3 {
4  protected $data = “السلام عليكم و رحمة الله و بركاته”;
5  public function GetData()
6   {
7    echo $this->data;
8   }
9 }
10class Tprotected extends DataType
11 {
12  public function echoData()
13   {
14    echo $this->data;
15   }
16 }
17$access = new Tprotected();
18$access->echoData();
19?>

ملخص :

  1. public : يمكن إستعمالها في أي مكان من البرنامج .
  2. private : يمكن إستعمالها فقط في الفئة التي عرفت فيها .
  3. protected : لايمكن إستعمالها خارج الفئة و لكن يمكن إستعمالها داخل الفئة التي عرفت فيها أو في فئة مشتقة .
التصنيفات :برمجة الوسوم:,
  1. 25 يونيو 2011 الساعة 8:56 ص

    جميل جدا ً جزاك الله الف خير اخي الكريم

  2. ابو محمد
    1 أغسطس 2012 الساعة 2:07 ص

    جزاك الله خيراً ونفع بك

  3. 1 أغسطس 2012 الساعة 9:49 ص

    بارك الله فيك أخي أبو محمد

  1. No trackbacks yet.

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: