مفهوم Class و Object در برنامه نویسی شی گرا در PHP

به گزارش سرویس تازه های دنیای فناوری مجله تک تایمز ، —————- رپرتاژ آگهی —————– آموزش php : در دنیای واقعی، هر جسمی دارای خصوصیات و رفتارهای مختص خود می باشد. ما می توانیم اشیاء مشابه با ویژگی ها و رفتارهای مشابه را در یک کلاس (class) دسته بندی کنیم. بنابراین ما می توانیم بگوییم […]

به گزارش سرویس تازه های دنیای فناوری مجله تک تایمز ،

—————- رپرتاژ آگهی —————–

آموزش php : در دنیای واقعی، هر جسمی دارای خصوصیات و رفتارهای مختص خود می باشد. ما می توانیم اشیاء مشابه با ویژگی ها و رفتارهای مشابه را در یک کلاس (class) دسته بندی کنیم. بنابراین ما می توانیم بگوییم که یک کلاس یک طرح (blueprint) از اشیا (objects) است.

به عنوان مثال، کلاس (class) را می توان یک طرح یا یک نقشه برای یک خانه درنظر گرفت.  یک طرح یا نقشه ویژگی های خانه را بر روی کاغذ تعریف می کند. ما می توانیم از روی یک نقشه یا طرح به هر تعداد که بخواهیم خانه بسازیم. پس می توانیم بگوئیم یک شی نمونه ای از یک کلاس است، یا یک خانه نمونه ای از یک نقشه (blueprint) است.

 

تعریف کلاس ها (class) و اشیاء (object)




قبل از ایجاد هر شی جدیدی، شما نیاز به یک کلاس یا طرح شیء دارید. تعریف کلاس در PHP بسیار ساده است. برای تعریف یک کلاس جدید در PHP، از کلمه کلیدی class استفاده می کنیم :

همانطور که دیدید، ما یک کلاس خالی جدید به نام BankAccount تعریف کردیم. از کلاس BankAccount، می توانیم با استفاده از کلید واژه new یک شیء ایجاد کنیم. کد زیر بیانگر این مطلب می باشد:

خروجی :

C:wamp64wwwclicksite.orgindex.php:9: object(BankAccount)[1]

نکته :

توجه داشته باشید که ما از تابع var_dump()  برای مشاهده محتوای شی استفاده می کنیم.

 

متغیرها یا Properties




در شی گرایی (object-oriented)، به ویژگی های یک شیء properties می گویند. برای مثال، حساب بانکی دارای property یا ویژگی هایی مانند شماره حساب و موجودی حساب است.

بنابراین اجازه دهید این خواص را به کلاس BankAccount اضافه کنیم:

همانطور که می بینید ما از کلیدواژه private قبل از تعریف هر property استفاده نمودیم. که به آن visibility یا قابلیت دیده شدنِ property می گویند.

هر property می تواند یکی از این سه سطح دیده شدن (visibility levels) را داشته باشد. این سه سطح(level) عبارتند از :

   – private به معنای خصوصی

   – protected به معنای محافظت شده

   – public به معنای عمومی

private : متغیرها یا property هایی که در یک کلاس از نوع private تعریف می شوند، تنها می توانند توسط متدهای آن کلاس قابل دسترسی باشند. در مورد متدهای کلاس، کمی بعدتر صحبت خواهیم کرد.

protected : متغیرها یا property هایی که در یک کلاس از نوع protected تعریف می شوند، خواصی شبیه به property ها از نوع private دارند به جز اینکه propertyهای از نوع protected می توانند توسط زیرکلاس ها (subclasses) نیز قابل دسترسی باشند. شما در آموزش های بعدی، در مورد زیر کلاس ها و ارث بری (inheritance) خواهید آموخت.

public : متغیرها یا property هایی که در یک کلاس از نوع public تعریف می شوند، نه تنها می توانند از طریق متدهای داخل کلاس، قابل دسترسی باشند، بلکه می توانند از طریق کلاس های خارجی نیز قابل دسترسی باشند.

متغیرها یا property هایی که داخل کلاس BankAccount تعریف کردیم، فقط توسط متدهای داخل کلاس قابل دسترسی هستند.

 

method




رفتارهای (behavior) شی یا کلاس، متد (method) نامیده می شوند و درواقع همان توابع (Function) یک کلاس را تشکیل می دهند. شبیه به property ها در یک کلاس، متدها می توانند سه سطح دید (visibility levels) مختلفی داشته باشند: private، protected و public.

مثلا برای یک حساب بانکی یا همان کلاس BankAccount باید رفتارهای زیر را تعریف کنیم. ما می توانیم به حساب بانکی، پول واریز کنیم، یا پول برداشت کنیم و یا موجودی حساب را بگیریم. علاوه برا این ما نیاز داریم برای یک حساب “شماره حساب” تعریف کنیم و یا شماره حساب را دریافت کنیم. شماره حساب بانکی برای تمایز بین حساب های بانکی دیگر لازم و ضروری می باشد.  اینها همان توابع  یک کلاس را تشکیل می دهند.

برای ایجاد یک متد برای یک کلاس، از کلید واژه function استفاده می کنید و  بعد نام تابع و بعد پرانتز باز و بسته به دنبالش می آید. یک متد مشابه یک تابع است به جز اینکه یک متد با یک کلاس مرتبط است و دارای سطح دید است. مانند یک تابع، یک متد، می تواند یک یا چند پارامتر داشته باشد و می تواند یک مقدار را بازگرداند.

بعضی از روش ها را به کلاس BankAccount اضافه می کنیم:

totalBalance += $amount;  }  /**  * withdraw money from the bank account  * @param double $amount  */  public function withdraw($amount){  if($amount > $this->totalBalance)  die(‘Not enough money to withdraw’);  $this->totalBalance -= $amount;  }  /**  * returns total balance  * @return float total balance  */  public function getBalance(){  return $this->totalBalance;  }  /**  * return bacnk account number  */  public function getAccountNumber(){  return $this->accountNumber;  }  /**  * set bank account number  * @param string $accountNumber  */  public function setAccountNumber($accountNumber){  $this->accountNumber = $accountNumber;  } }

توجه داشته باشید که ما از یک متغیر خاص به نام $this برای دسترسی به یک property از یک شی استفاده می کنیم.

PHP با استفاده از متغیر $this به شی (object) جاری اشاره می کند.

برای دسترسی به یک property از عملگر فلش (->) به صورت زیر استفاده می کنیم:

object->property

بیایید متدهای کلاس BankAccount را با جزئیات بیشتری بررسی کنیم:

متد ()deposit موجودی حساب را افزایش می دهد.

منبع : مفهوم class و object در php

 

 

بمنظور اطلاع از دیگر خبرها به صفحه اخبار تکنولوژی و فناوری مراجعه کنید.
منبع خبر