مفهوم برنامه نویسی شی گرایی یا object-oriented programming

برنامه نویسی شی گرا یا به اختصار OOP یک شیوه برنامه نویسی است که کدهای مشابه را در قالب یک کلاس جمع آوری و در قسمت های مختلف برنامه از آن استفاده میکند. 
برای مثال فرض کنید یک وبسایت علمی طراحی کرده اید که برای قسمت های مختلف آن ماندن صفحات اخبار، مقالات و ... امکان ارسال نظرات برای کاربر وجود دارد. خب در برنامه نویسی به شیوه معمولی شما میبایست برای هر گروه از صفحات سیستم نظردهی جداگانه ای بنویسید. اما در برنامه نویسی شی گرایی شما یک بار در قالب یک کلاس (class) سیستم نظردهی را می نویسید و برای صفحات مختلف یک نمونه شی (object) از کلاس نظردهی ایجاد می کنید. به این ترتیب شما فقط یک بار سیستم نظردهی را برنامه نوشته اید و از آن در تمامی گروه های مطلب خود استفاده می کنید. 
در طبیعت نیز از مدل شی گرایی برای تمامی پدیده ها نیز استفاده شده است. مثلا انسان را در نظر بگیرید. یک کلاس کلی از انسان وجود دارد که دارای اجزای مشترک مانند قلب،چشم، گوش و ... می باشد. و نمونه های مختلف از این کلاس ساخته می شوند. مثلا یک نمونه انسان از کلاس انسان اصلی می سازیم که موارد کلی را از این کلاس به ارث می برد و موارد جزئئ را نیز به آن اضافه می کنیم. مثلا دارای جنسیت مرد، نام علی، رنگ چشم مشکی و.....
یکی از مهمترین عواملی که با عث شد برنامه نویسی شی گرایی پدید آید ابتدا پرهیز از تکرار کدنویسی و دوم توسعه آسان تر برنامه های نوشته شده بود. در برنامه های بزرگ اگر مشکل یا خطایی در برنامه ایجاد شود و یا در آینده قصد تغییر برنامه را داشته باشید، فقط کافیست کلاس کد مربوطه را تغییر دهید و مجبور به خواندن کلیه برنامه از ابتدا تا انتها نخواهید بود. این یعنی توسعه آسان تر.


php

مفاهیم شی گرا در php عبارتند از:

  • Class (کلاس)
  • Objects (شی یا اشیاء)
  • Inheritance (وراثت)
  • Polymorphism (چند ریختی)
  • Encapsulation (کپسوله سازی)

ساختار کلاس ها در php

نحوه ساخت یک کلاس در php بسیار ساده است. کلاس ها با کلمه کلید class و به دنبال آن نام کلاس و سپس مجموعه ای از کدها و توابع در بین دو علامت براکتز " {} " نیز نوشته میشوند.

<?php
 
class MyClass
{
  // جزییات و متدهای کلاس اینجا تعریف می شوند
}
 
?>

بعد از ساخت کلاس (در اینجا نام کلاس را myclass تعیین کردیم) می توانیم یک نمونه یا یک شی از کلاس را با کلمه کلیدی newدر داخل یک متغیر ایجاد کنیم.

$obj = new MyClass;

این ساده ترین نوع کلاس است که ایجاد کرده اید.

تعریف خصوصیات کلاس در php

خصوصیات (properties) یا متغیرهای خاص کلاس برای اضافه کردن داده ها به یک کلاس مورد استفاده قرار می گیرند که کاملا مانند متغیرهای معمولی عمل میکنند با این تفاوت که برای دسترسی به این متغیر ها بایستی از اشیاء استفاده کنیم.

<?php
 
class MyClass
{
  public $property1 = "This is a class property!";
}
 
$obj = new MyClass;
 
var_dump($obj);
 
?>

خروجی کد بالا به شکل زیر می باشد.

object(MyClass)[1]
  public 'property1' => string 'This is a class property!' (length=25)


کلمه کلیدی public نحوه دسترسی به متغیر property1 را در خارج از کلاس تعیین می کند که در ادامه آموزش با انواع دسترسی به متغیرهای کلاس بیشتر آشنا میشوید.
جهت دسترسی به متغیرهای کلاس پس از ایجاد شی از کلاس مورد نظر به صورت زیر متغیر داخل کلاس را فراخوانی می کنیم:

$obj->property1;

از کاراکترهای (<-) به معنی اشاره گر به منظور دسترسی به اجزای یک کلاس استفاده می شود. در مثال بالا ابتدا یک شی به نام obj ایجاد کردیم و سپس به متغیر property1 اشاره کردیم. می توانیم مقدار این متغیر را در صفحه نیز چاپ کنیم.

<?php

class MyClass
{
    public $property1 = "This is a class property!";
}

$obj = new MyClass;
echo $obj -> property1;

?>

خروجی کدهای بالا به صورت زیر می شود:

This is a class property!


در جلسه بعدی بیشتر با کلاس ها و انواع آنها آشنا خواهیم شد.

آیا این پاسخ به شما کمک کرد؟ 92 کاربر این را مفید یافتند (119 نظرات)