برنامه نویسی شیگرا مفهوم بسیار کاربردی و مهمی را در دنیای برنامه نویسی به وجود آورده، هرچند مفهوم جدیدی نیست اما متاسفانه خیلی از برنامه نویسان در درک و بهره گیری از این مهم عاجز هستند. چرا که به کار گیری شی گرایی در عالم برنامه نویسی، به درک روابط اشیاء با هم، مربوط میشود، و عموما در زمان کدنویسی پروژههای بزرگ، ذهن تمرین نکرده، این ارتباطات را گم میکند. در ادامه میخواهیم بیشتر با مفهوم، همچنین کاربرد شی گرایی آشنا بشویم.
اشیاء در تعریف، قطعه کدهایی هستند، که با استفاده از خصوصیات تعریف شده برای آنها،مسئولیتی را انجام میدهند.این اشیاء میتوانند شامل کلاسها و یا متدهایی باشند که در صورت فراخوانی هر کدام، با توجه به داده های ارسالی به آنها وظایفی را انجام داده و خروجی این وظایف میتواند نتیجهی نهایی اپلیکیشن ساخته شده را تشکیل بدهد، و پروسه برنامه نویسی را تسهیل کند.
بر اساس توضیحی که در ویکیپدیا آمده، هر شیء یک سری خصوصیت و قابلیت دارد، که اصطلاحاً Properties و Operation خوانده میشوند. در این روش از برنامه نویسی، برنامه نویس سعی میکند با پیدا کردن یا در اصل (ایجاد کردن) اشیاء مختلف در سیستم و برقراری ارتباط بین آنها سیستم را تولید نماید.
زبانهایی مانند جاوا، سی++، سی شارپ، دلفی از جمله زبانهای شیءگرا هستند. حتی بسیاری از زبانهای روال گونه که ساختار برنامهها در آنها بلوکهایی با نام پروسیجر است، امروزه از فنون شیءگرایی نیز پشتیبانی میکنند.
مهمترین مفهوم شیگرایی در زبان برنامه نویسی شیگرا، مانند سویفت، کلاسها هستند.
تعریف مناسب برای درک بهتر کلاسها : برنامهنویسی شیءگرا، دادهها (خواص) و متدها (رفتارها) را در بستههایی به نام کلاس محصور میکند. کلاسها دارای خاصیت کپسوله سازی هستند. این بدان معناست که اشیاء میدانند که چگونه از طریق رابطهای تعریف شده با یکدیگر ارتباط برقرار کنند ولی معمولاً، اشیاء نباید از چگونگی پیادهسازی اشیاء دیگر مطلع باشند، بهعبارت دیگر، جزئیات پیادهسازی در داخل خود اشیاء پنهان شدهاند.
در این جلسه به تعاریف و کاربرد کلاسها، همچنین شیگرایی اشاره کردیم، ولی از آنجایی که کلاسها بدون متدها کاربردی ندارند باید صبر کنید تا ساخت متدها را فرا بگیرید، چرا که پس از آن میتوانید از کلاسها به صورت کاربردی استفاده کنید.
برای تعریف کلاسها به صورت زیر عمل میکنیم:
class نام کلاس { init() { دستورات اولیه در زمان فراخوانی کلاس } }
برای ساخت کلاس، از کلیدواژهی class استفاده میکنیم، سپس نام کلاس را نوشته و کروشه را باز میکنیم، متد () init لازمهی ساخت هر کلاس است،و دستورات درون آن بلافاصله در زمان فراخوانی کلاس اجرا خواهند شد، سپس کروشه را بسته و تمام.
نکته: متد ها را در جلسات بعد یاد میگیرید.
مثال زیر ساخت یک کلاس را نشان میدهد:
class className { init(){ print("class created") } }
در مثال بالا کلاسی ساختیم به نام className و در متد ()init آن، متنی را نوشتیم که در زمان فراخوانی این کلاس آنرا در خروجی مشاهده خواهیم کرد.
در جلسات بعد، با نحوهی فراخوانی کلاسها،که به واسطهی ساخت یک شی از آن کلاس ایجاد میشوند را آموزش خواهم داد، اما در ابتدا باید با متدها آشنا شوید و از ساز و کار آنها سر در بیاورید.پس مطالب جلسات بعد را از دست ندهید.