تعریف کلاسها در برنامه نویسی

نوشته شده توسط , ۱۵ مهر ۱۳۸۹

در این پست میخوام به تعریف شی وکلاس در برنامه نویسی بصورت متفاوت از بقیه تعاریف که در سایت ها میشود بپردازم

در ضمن تمام مثالها با زبان php میباشند.بیشترین تعریفی که از شی وشی گرایی در سایتها میشود انرا مشابه اشیا دنیای واقعی مثل ماشین ,ساختمان ,میز وموارد اینچنینی میدانند وحتی مثالهای در این رابطه میزنند شاید نامربوط نباشد ولی خواننده رو از موضوع اصلی دور ومساله را برای ان گنگ میکنند. تعریف خودم از کلاس: یک برنامه کوچک که قسمتی از برنامه ای بزرگتر است و یک یا چند وظیفه را میتواند چندین بار در چند جای مختلف برنامه توسط شی ساخته شده از ان اجرا کند

تعریف کلی کلاس: یک کلاس عبارت از یک ساختار الگو که یک شی را تعریف مکند.هر کلاس متشکل است از مجموعه ای از عبارات ودستوراتی است که نحوه انجام یک وظیفه یا مجموعه ای از وظایف که اغلب لازم است مکررا انجام شوند,میباشد.توابع و متغیرها یی که در کلاس استفاده میشوند از انها به عنوان متد وخصوصیت یاد می شود(کریس نیومن).

خوب حالا کلاسها چه استفاده ای دارند؟ فرض کنید ما یک برنامه داریم که شامل چندین صفحه وبیش از هزار خط برنامه نویسی باشد ودر این برنامه یک کدپنجاه خطی برای انجام یک وظیفه ,دربخشهای مختلف برنامه چندین بار نوشته واستفاده شده است
حالا بعد از مدتی به یک باگ در این کد پی میبریم یا اینکه بخواهیم یک تغیری در روش کار او انجام بدیم چاره چیست؟ باید تک تک جاهای که این کد استفاده شده روپیدا کنیم وتغیر بدیم که کلی زمان وکار از ما خواهد گرفت.ولی در صورتی که این کد رو بصورت کلاس یا همان شی استفاده کرده باشیم نیازی به این همه زحمت نخواهد بود وبا تغیر کلاس تمام نمونه ها یا اشیا ساخته شده از اون کلاس تغیر میکنند. تازه این فقط یکی از مزایای کلاس ها است بغیر از این میتوان به ارث بری کلاسها , توسعه اسان برنامه,کم کردن حجم برنامه,خوانایی بالای برنامه و… اشاره نمود

خوب حالا یک مثال بی نهایت  ساده میزنیم,یک کلاس که دارای یک خاصیت (متغیر) ویک متد(تابع),که وظیفه چاپ کلمه alli رو برعهده دارد

class cname
 {

 var $varname = 'ali';

 function funname()
 {

 echo $this -> varname ;

 }
}

البته برای استفاده و مشاهده نتیجه عمل کلاس ,باید یک شی از ان توسط کلمه new بسازیم وبه متغیری نسبت دهیم

$object = new cname;

ما در خط چهارم کد توسط $this -> درون خود کلاس به خاصیت(متغیر $varname) کلاس اشاره و دسترسی پیدا کردیم ولی برای دسترسی به متغیرها و توابع کلاس در خارج از اون بجای $this از متغیری که شی رو به اون نسبت دادیم استفاده میکنیم

$object -> varname = 'saman';
$object -> funname();

دیدگاه‎ها مسدود است

پوسته ی پانوراما ساخته شده توسط Themocracy و آماده شده برای وردپرس فارسی توسط websam