دوره مجازی PHP (جلسه 21): برنامه نویسی شی گرا - اصول و مفاهیم پایه



visibility  
mode_comment   ۱۵

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

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

فصل 17 : شئ گرایی در PHP و اصول برنامه نویسی Object Oriented

  • نگاهی به دنیای پیرامون ما
  • مشکلات و محدودیت های برنامه نویسی Functional
  • تشریح مفهوم شئ گرایی و مزیت های آن
  • تاریخچه و ویژگی های برنامه نویسی OOP در زبان PHP
  • شناخت عناصر مهم در برنامه نویسی شئ گرا :
  • طبقه بندی ها (Classes)
  • ویژگی ها (Properties)
  • عملیات و متد ها (Methods)
  • اشیاء (Objects or Instances)
  • ارائه مثال های کاربردی برای درک بهتر مفهوم شئ گرایی، کلاس های اشکال هندسی و افراد
  • نحوه ی نامگذاری کلاس ها، ویژگی ها و متدها
  • نحوه ی ایجاد یک کلاس در زبان PHP
  • عناصر تشکیل دهنده ی یک کلاس (ویژگی ها و متدها)
  • مفهوم کلمات کلیدی public و private و protected در تعریف ویژگی ها و متدهای کلاس
  • نحوه ی تعریف ویژگی های کلاس
  • نحوه ی تعریف متد های (رفتارهای) کلاس
  • نحوه ی ساختن نمونه ها (Instances) از یک کلاس تعریف شده : (کلمه کلیدی new)
  • عملگر ->و :: در PHP
  • متد سازنده (Constructor) در برنامه نویسی شئ گرای PHP
  • متد تخریب کننده (Destructor) در برنامه نویسی شئ گرای PHP
  • مفهوم متدهای getter و setter در کلاس ها
  • مفهوم عناصر استاتیک و کلمات کلیدی self و static در کلاس های PHP
  • تشریح تفاوت بین $this و self
  • نحوه ی ارث بری کلاس ها در زبان PHP (به ارث بردن ویژگی های کلاس فرزند از کلاس پدر)
  • دسترسی به عناصر کلاس پدر با کلید parent
  • Override کردن متدهای کلاس پدر
  • کلیدهای const و final و دلایل استفاده از آنها
info توجه

این مطلب یک جلسه از آموزش php می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش php

comment دیدگاه کاربران
قاصد

سلام
من مبلغ 37000 تومن رو به عنوان قسط دوم واریز کردم
13009871143
لطفا رسیدگی کنید.

لقمان آوند

ممنون
تائید شد .

nasrin

سلام چرا روی construct ارور میده syntax error, unexpected ‘function__construct’ (T_STRING), expecting function (T_FUNCTION)

لقمان آوند

سلام
در نوشتن تابعتون خطای نوشتاری دارید .
بررسی کنید حتما کلمات public function رو قبل از تعریف constructor گذاشته باشید .
اگر مشکلتون حل نشد کدتون رو بهم بدید که بررسیش کنم و مشکلش رو بهتون بگم .

sadaf

سلام
اینکه در بعضی جاها به جای نوع تابع در کلاس اسم خود کلاس رو میزارن مفهومش چیه؟

لقمان آوند

سلام
یعنی نوع مقداری که تابع برمیگردونه یک شئ از کلاس مذکور هست .
اینجا هم myclass یه نوع داده ای محسوب میشه !

استاد ببخشید یه سوال
وقتی می خوایم یه پروژه رو از ابتدا تا انتها کد بزنیم دقیقا چه مراحلی رو باید به ترتیب انجام بدیم؟ آیا اول باید طراحی منطقی پایگاه داده رو انجام بدیم یا اینکه رابط کاربری رو طراحی کنیم یا ساختار کلاسهای برنامه رو تنظیم کنیم؟ دقیقا چه مراحلی رو باید انجام داد از اول تا آخر؟ با تشکر

لقمان آوند

سلام
در ابتدای جلسات مربوط به پروژه های دوره این مورد رو کاملا توضیح دادیم. ایشالله بهش میرسید.

استاد چرا دسترسی به یه عضو استاتیک از یه کلاس با استفاده از کلمه کلیدی this امکان پذیر نیست. ولی به همون عضو استاتیک میشه با کلمه کلیدی self دسترسی پیدا کرد؟ این مساله در php یه مقدار عجیب و غریب به نظر میرسه . مثلا در زبان جاوا یه تابع استاتیک می تونه به راحتی به یه عضو استاتیک دسترسی پیدا کنه ولی در php اینکار با استفاده از this قابل دسترسی نیست. مثلا


این کد خطای نحوی ایجاد می کنه با اینکه هم متغیر و هم تابع هر دو استاتیک هستند.
اما کد زیر به درستی کار می کنه


حتی مشکل از این هم پیچیده تر میشه .طوری که یه تابع غیر استاتیک می تونه با کلمه کلیدی self به یه عضو استاتیک دسترسی پیدا کنه مثلا کد زیر درست کار می کنه.

خیلی گیج شدم ممنون میشم علت رو برام توضیح بدید. با تشکر

لقمان آوند

ببینید ، this و self مفهوم مختلفی دارند و یکی نیستند. این مورد هم یه قانون هست در php .
this برای دسترسی به آبجکت کنونی استفاده میشه و self برای کلاس کنونی! از self برای دسترسی به عناصر استاتیک و از this برای دسترسی به non-static ها استفاده کنید …

فرهاد

آها الان متوجه شدم یعنی اینکه چون self برای دسترسی به یک کلاس استفاده میشه و از اونجا که متغیرهای استاتیک مستقل از اشیا عمل می کنند در واقع دسترسی به اون ها باید از طریق کلاس انجام بشه و نه شی درسته؟

لقمان آوند

بله، استدلال خوبی هست …

استاد آوند یه سوال در بخش نظرات مطلب جلسه مربوط به آرایه ها پرسیده بودم اگه امکان داره اون رو هم پاسخ بدید.
متن سوال این بود:
—————
با سلام خدمت استاد آوند
استاد شما فکر می کنید نحوه پیاده سازی توابعی مثل extract و یا توابعی مثل parse_str یا parse_url (که در جلسه قبل توضیح داده بودید) چطوری می تونه باشه؟ منظورم اینه که خودمون چطور می تونیم تابعی رو پیاده سازی کنیم که بعد از فراخوانی اون متغیرهایی به نام های خاصی در دسترس باشند. بدون اینکه قبلا توسط برنامه نویس به کار برده شده یا تعریف شده باشند.
با تشکر
—————

لقمان آوند

سلام
در PHP مفهومی وجود داره به نام Variable variables ها. با استفاده از این مفهوم و بکار گیری مقادیر میشه به راحتی متغیرهای جدید رو از مقادیر رشته ای ایجاد کرد که فکر کنم اگه اینجا رو بخونید خودتون متوجه بشید .

afshinirani

استاد واقعا لذت بردم قبلا از شی گرایی میترسیدم ولی الان میفهمم خیلی کاربردی ومفیده. باتشکر از توضیحات روان وقابل فهمتون

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.