مدت هاست که برنامه نویسی به سمت شی گرایی پیش رفته است، اگر با این موضوع آشنایی دارید لازم نیست این درس را مطالعه کنید و به درس بعدی بروید اما اگر در مورد آن نمی دانید برای شروع باید مفاهیم شی گرایی را در اسکریپت نویسی VBA برای اکسل، در این درس با هم یاد بگیریم.

برنامه نویسی شی گرا همانطور که از اسمش پیداست ما را به سمتی در کد نویسی می برد که با اشیا سر و کار داشته باشیم! یک شی میسازیم و از آن شی استفاده می کنیم!!

بله شی می سازیم! در لا به لای خطوط کد چگونه یک شی میسازیم؟!؟

لازم است بدانید شیی که میسازیم لزوما یک شی واقعی نیست! ممکن است هم واقعی باشد. مثلا وقتی یک دکمه در برنامه خود دارید این دکمه یک شی است! یا در همین نرم افزار اکسل خانه های جدول یا همان رنج ها یک شی هستند! شیت ها خود یک شی هستند و …

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

 

عجله نکنید اگر گیج شده اید در ادامه حل می شود.

در واقع افرادی در دنیا کلاس هایی نوشته اند ، کلاس های کد هایی هستند که منجر به ساخت شی می شوند، مثلا در کارخانه تولید پراید یک کتاب هستن که اطلاعات ساخت پراید کلاس ۱۴۱ درون آن نوشته شده است، پس به آن می گوییم کلاس! هر بار که بخواهیم شی ای از کلاس پراید ۱۴۱ بسازیم باید از آن کلاس ساخته شود.

 

بعد از ساخت شی این شی درون حافظه رم جایی برای خود اشغال میکند، برای این کا آن را گم نکنیم یا می توانیم به آن نام دهیم یا اگر فقط در همان خط کد به آن نیاز داریم همانجا ازش استفاده میکنیم و بعد هم می گزاریم گم شود و کاری باهاش نداریم!

 

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

 

 

اما چطور از اشیا استفاده میکنند؟

 

اشیا شامل دو قبلیت هستند! متد ها و فیلد ها

اگر نام یک شی را بیاوریم و بعد از آن . بگزاریم میتوانیم متدد ها و فیلد های آن را صدا بزنیم.

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

فیلد ها متغیر های درون شی هستند که توسط کلاس تعریف شده اند.

مثلا در کلاس پراید ۱۴۱ یک تابع به عنوان استارت وجود دارد! پس شی های ساخته شده درون آن کلاس هم این تابع را دارند و میتوانید آن را صدا زده و ماشین خود را روشن کنیم، درون کلاس نوشته شد ه است برای استارت باید چه کار هایی انجام شود.

و در مورد فیلم هم احتمالا درون کلاس یک متغیر به نام مقدار بنزین درون باک وجود دارد که درون شی ساخته شیده میتوانیم آن را بخوانیم و بفهمیم الان چقدر بنزین دورن باک است

 

نکته ! دقت کرده اید که هر نمونه شی که از روی یک کلاس ساخته مش ود و سپس متد یا فیلد های آن را فراخوانی میکنیم جدا از هم عمل می کنند؟

مقلا از کلاس پراید دو نمونه با نام های آ و ب ساخته باشیم، اگر شی آ را متد استارت را برایش اجرا کنیم ماشین ب نباید روشن شود! و یا وقتی مقدار بنزین درون ماشین ب را میخواهیم نباید مقدار بنزین ماشین آ را به ما بدهد!

پس وقتی از روی یک کلاس نمونه سازی می کنیم، متد ها و فیلد ها جدا گانه بری هر نمونه عمل میکنند اما به یک شرط!!! به شرطی که آن متد و یا فیلد static نباشند! اگر سازنده کلاس متد یا فیلدی را استاتیک بسازد آن متد یا فیلد برای تمامی نمونه ها یکسان است!!

در درس های بعدی مفاهیم بیشتر درون ذهن شما جا خواهد افتاد

تمام 🙂

درباره نویسنده

سید حامد موسوی

مهندس برق - مخابرات و در زمینه های طراحی مدارت الکترونیکی ، مخابراتی، برنامه نویسی چند رسانه ای ، طراحی وب ، اندروید ، نریشن و گرافیک فعالیت دارم.

متن نظر