دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۵
  • اردیبهشت

جلسه ۲۵-۰۱ : شی گرایی در زبان پاسکال (Pascal)

  • دسته‌بندی‌ها :
جلسه ۲۵-۰۱ : شی گرایی در زبان پاسکال (Pascal)
    • جزئیات
    • نوع محتواآموزشی

      علاقمندان به زبان های برنامه نویسی روزتون بخیر. با آموزش زبان برنامه نویسی پاسکال (Pascal) از وب سایت آموزشی پی وی لرن همراهتون خواهیم بود. در این بخش با شی گرایی در زبان پاسکال (Pascal) همراه خواهیم بود و در مورد مفاهیم شی گرایی در پاسکال و همچنین تعریف Object پاسکال صحبت خواهیم نمود. مبحث شی گرایی در زبان پاسکال (Pascal) را در سه جلسه بیان می کنیم. با ادامه ی آموزش ها همراه باشید.

      شی گرایی در زبان پاسکال (Pascal)

      جهانی که ما در آن زندگی می کنیم از اشیاء مختلفی مانند خورشید ، زمین ، ماه و غیره ساخته شده است به همین ترتیب ، اتومبیلی که استفاده می کنیم از سر هم شدن اشیاء مختلفی مانند چرخ ، فرمان ، دنده و غیره ساخته شده است و به همین ترتیب ، مفاهیم برنامه نویسی شی گرا نیز وجود دارند که همه چیز را به عنوان یک شی فرض می کند و یک نرم افزار را با استفاده از اشیاء مختلف پیاده سازی می کند. در پاسکال ، دو نوع داده ساختاری وجود دارد که برای پیاده سازی یک شیء دنیای واقعی استفاده می شود.

      • Object types
      • Class types

      در ادامه ی مبحث شی گرایی در زبان پاسکال (Pascal) با مفاهیم شی گرایی در پاسکال آشنا می شویم.

      مفاهیم شی گرایی در پاسکال

      قبل از این که به جزئیات بپردازیم ، بیایید اصطلاحات مهم پاسکال در رابطه با شی گرایی یا Object-oriented را تعریف کنیم.

      Object – یک Object نوع خاصی از رکورد است که شامل فیلدهایی مانند رکورد است. اما ، بر خلاف رکوردها  ، اشیاء شامل رویه ها و توابعی به عنوان بخشی از شی هستند. این رویه ها و توابع به عنوان اشاره گر روشهای مرتبط با نوع شی نگه داشته می شوند.

      کلاس – کلاس تقریباً به همان شیوه Object تعریف می شود ، اما در نحوه ایجاد آن ها تفاوت وجود دارد. کلاس در Heap یک برنامه اختصاص داده می شود ، در حالی که شیء در Stack اختصاص می یابد. این یک اشاره گر به شی است ، نه خود شیء.

      نمونه‌ سازی یک کلاس (Instantiation of a class) – نمونه‌ سازی یا Instantiation به معنای ایجاد متغیر از آن نوع کلاس است. از آن جا که یک کلاس فقط یک اشاره گر است ، وقتی یک متغیر از نوع کلاس اعلام می شود ، حافظه اختصاصی فقط برای اشاره گر وجود دارد ، نه برای کل شی. فقط هنگامی که با استفاده از یکی از سازندگان نمونه سازی شد ، حافظه برای شی اختصاص می یابد. نمونه از کلاس “اشیاء یا objects” نیز نامیده می شوند ، اما آن ها را با Object Pascal Objects اشتباه نگیرید. در این آموزش ،”Object” را برای Pascal Objects و “object” برای مفهوم object یا نمونه کلاس می نویسیم.

      متغیرهای عضو (Member Variables) – این ها متغیرهایی هستند که درون یک کلاس یا یک شی تعریف شده اند.

      توابع عضو (Member Functions) – این ها توابع یا رویه هایی هستند که در داخل یک Class یا یک Object تعریف شده اند و برای دسترسی به داده های شی استفاده می شوند.

      Visibility اعضا – به اعضای یک Object یا Class فیلدها نیز گفته می شود. این فیلدها Visibility متفاوتی دارند. Visibility دسترسی اعضا را بیان می کند ، یعنی دقیقاً به جائی که این اعضا قابل دسترسی خواهند بود، اشاره دارد. اشیاء دارای سه سطح دید یا نظارت (visibility) هستند: عمومی ، خصوصی و محافظت شده. کلاس ها دارای پنج نوع visibility هستند: عمومی ، خصوصی ، کاملاً خصوصی ، محافظت شده و منتشر شده (publish). در مورد جزئیات visibility بیش تر بحث خواهیم کرد.

      وراثت (Inheritance) – وقتی یک کلاس با ارث بری ویژگی های موجود در کلاس والدین تعریف می شود ، می گویند که خصوصیات به ارث رسیده است. در این جا کلاس کودک تمام یا چند تابع عضو و متغیرهای کلاس والدین را به ارث می برد. اشیاء نیز می توانند به ارث برده شوند.

      کلاس والد – کلاسی که توسط طبقه دیگری به ارث برده می شود. به این کلاس base class یا super class نیز گفته می شود.

      كلاس كودك – كلاسی كه از كلاس دیگر به ارث می رسد. به این کلاس subclass یا derived class – کلاس مشتق شده نیز گفته می شود.

      چند ریختی (Polymorphism) – این یک مفهوم شی گرا است که در آن می توان از یک عملکرد مشابه برای اهداف مختلف استفاده کرد. به عنوان مثال ، نام تابع همان باقی می ماند ، اما ممکن است تعداد آرگومان های مختلفی را به خود اختصاص دهد و می تواند کارهای مختلفی انجام دهد. کلاس های پاسکال چند ریختی را پیاده سازی می کنند. اشیاء چند ریختی را اجرا نمی کنند.

      اضافه بار (Overloading) – این نوعی چند ریختی است که در آن برخی یا همه اپراتورها بسته به نوع آرگومان های خود پیاده سازی های مختلفی دارند. به همین ترتیب توابع همچنین با پیاده سازی های متفاوت می توانند overloaded شوند. کلاس های پاسکال overloading را انجام می دهند ، اما اشیاء چنین نمی کنند.

      انتزاع داده ها (Data Abstraction) – هرگونه نمایش از داده ها که جزئیات اجرای آن را پنهان است (انتزاعی).

      Encapsulation یا کپسوله سازی – به مفهومی مربوط می شود که در آن همه داده ها و توابع عضو را با هم به فرم یک شیء تشکپسوله می کند.

      سازنده (Constructor) – به نوع خاصی از توابع اشاره دارد که هر وقت یک شیء از یک کلاس یا یک Object وجود داشته باشد به طور خودکار خوانده می شود.

      Destructionor – به نوع خاصی از توابع اشاره دارد که هر زمان که یک Object یا Class حذف شود یا از محدوده خارج شود به طور خودکار فراخوانی می شود.

      در ادامه ی مباحث با تعریف Object پاسکال آشنا خواهیم شد.

      تعریف Object پاسکال

      یک شی و یا Object با استفاده از اظهارات نوع اعلام می شود. فرم کلی بیانیه ی Object به شرح زیر است.

      مثال : 

      بگذارید یک Object Rectangle که دارای دو عضو داده از نوع عدد صحیح باشد را تعریف کنیم، طول و عرض و برخی از توابع عضو برای دستکاری این اعضای داده و رویه برای ترسیم مستطیل آورده شده اند.

      مثال : 

      بعد از ایجاد اشیاء ، می توانید توابع عضو مربوط به آن شی را فراخوانی کنید. یک تابع عضو قادر به پردازش متغیر عضو فقط از موضوع مرتبط است.

      مثال زیر نحوه ی تنظیم طول و عرض برای دو شیء مستطیل و ترسیم آن ها را با فراخوانی توابع عضو نشان می دهد.

      مثال : 

      در این بخش از شی گرایی در زبان پاسکال (Pascal) با مفاهیم شی گرایی در پاسکال آشنا شدیم.

      کلام پایانی

      در این بخش از شی گرایی در زبان پاسکال (Pascal) با مفاهیم شی گرایی در پاسکال چون چند ریختی، وراثت، کلاس کودک و والد، کپسوله سازی، سازنده (Constructor) و غیره آشنا شدیم. مبحث شی گرایی در زبان پاسکال (Pascal) را در جلسات آینده با مثال ها و مطالب دیگری ادامه خواهیم داد. با آموزش زبان برنامه نویسی پاسکال (Pascal) از وب سایت آموزشی پی وی لرن همراه باشید.

      QR:  جلسه ۲۵-۰۱ : شی گرایی در زبان پاسکال (Pascal)
      به اشتراک بگذارید