منظور از شی گرایی در برنامه نویسی اکسل چیست؟_37
مدت هاست که برنامه نویسی به سمت شی گرایی پیش رفته است، در جلسه سی و هفتم از آموزش اکسل به آموزش شی گرایی در برنامه نویسی اکسل میپردازیم.
اگر با شی گرایی در برنامه نویسی اکسل آشنایی دارید لازم نیست این درس را مطالعه کنید و به درس بعدی بروید اما اگر در مورد شی گرایی در برنامه نویسی اکسل نمی دانید برای شروع باید مفاهیم شی گرایی را در اسکریپت نویسی VBA برای اکسل، در این درس با هم یاد بگیریم.
نحوه شی گرایی در برنامه نویسی اکسل
برنامه نویسی شی گرا همانطور که از اسمش پیداست ما را به سمتی در کد نویسی می برد که با اشیا سر و کار داشته باشیم! یک شی میسازیم و از آن شی استفاده می کنیم!!
بله شی می سازیم! در لا به لای خطوط کد چگونه یک شی میسازیم؟!؟
لازم است بدانید شیی که میسازیم لزوما یک شی واقعی نیست! ممکن است هم واقعی باشد. مثلا وقتی یک دکمه در برنامه خود دارید این دکمه یک شی است! یا در همین نرم افزار اکسل خانه های جدول یا همان رنج ها یک شی هستند! شیت ها خود یک شی هستند و …
اما در جایی هم ممکن است شی های ما دیدنی نباشند، مثلا شی می سازیم با نام Downloader که وطیفه دانلود کردن را دارد و ما از آن استفاده می کنیم.
عجله نکنید اگر گیج شده اید در ادامه حل می شود.
در واقع افرادی در دنیا کلاس هایی نوشته اند ، کلاس های کد هایی هستند که منجر به ساخت شی می شوند، مثلا در کارخانه تولید پراید یک کتاب وجود دارد که اطلاعات ساخت پراید کلاس ۱۴۱ درون آن نوشته شده است، پس به آن می گوییم کلاس! هر بار که بخواهیم شی ای از کلاس پراید ۱۴۱ بسازیم باید از آن کلاس ساخته شود.
بعد از ساخت شی این شی درون حافظه رم جایی برای خود اشغال میکند، برای این که آن را گم نکنیم یا می توانیم به آن نام دهیم یا اگر فقط در همان خط کد به آن نیاز داریم همانجا ازش استفاده میکنیم و بعد هم می گزاریم گم شود و کاری باهاش نداریم!
بعضی وقت ها شی ها ساخته شده اند و ما باید بگریم آنرا پیدا کنیم، مثلا در یک صفحه اکسل شی های رنج (یعنی همان خانه های جدول) از ابتدای باز شدن برنامه ساخته شده اند و درون حافظه هستند، و ما باید با روش هایی که داریم آن ها را پیدا کرده و برایشان کد بنویسی و یا اسمی به آن ها بدهیم تا گم نشوند و هر جا از آن ها خواستیم استفاده کنیم با اسمشان فراخانیشان کنیم.
چطور از اشیا ایجاد شده در اکسل استفاده میکنند؟
اشیا شامل دو قبلیت هستند! متد ها و فیلد ها
اگر نام یک شی را بیاوریم و بعد از آن . بگزاریم میتوانیم متدد ها و فیلد های آن را صدا بزنیم.
متد ها تابع های درون آن شی هستند که توسط کلاس تعریف شده اند.
فیلد ها متغیر های درون شی هستند که توسط کلاس تعریف شده اند.
مثلا در کلاس پراید ۱۴۱ یک تابع به عنوان استارت وجود دارد! پس شی های ساخته شده درون آن کلاس هم این تابع را دارند و میتوانید آن را صدا زده و ماشین خود را روشن کنیم، درون کلاس نوشته شد ه است برای استارت باید چه کار هایی انجام شود.
و در مورد فیلم هم احتمالا درون کلاس یک متغیر به نام مقدار بنزین درون باک وجود دارد که درون شی ساخته شیده میتوانیم آن را بخوانیم و بفهمیم الان چقدر بنزین دورن باک است
نکته ! دقت کرده اید که هر نمونه شی که از روی یک کلاس ساخته مش ود و سپس متد یا فیلد های آن را فراخوانی میکنیم جدا از هم عمل می کنند؟
مقلا از کلاس پراید دو نمونه با نام های آ و ب ساخته باشیم، اگر شی آ را متد استارت را برایش اجرا کنیم ماشین ب نباید روشن شود! و یا وقتی مقدار بنزین درون ماشین ب را میخواهیم نباید مقدار بنزین ماشین آ را به ما بدهد!
پس وقتی از روی یک کلاس نمونه سازی می کنیم، متد ها و فیلد ها جدا گانه بری هر نمونه عمل میکنند اما به یک شرط!!! به شرطی که آن متد و یا فیلد static نباشند! اگر سازنده کلاس متد یا فیلدی را استاتیک بسازد آن متد یا فیلد برای تمامی نمونه ها یکسان است!!
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.