سلام دوستان عزیز.
مبحث شی گرایی مبحث خیلی بزرگی هست که خودش نیاز داره یک فروم مخصوص براش درست کنیم. اما سعی می کنم خیلی خلاصه در عین حال جامع برای شما این مسئله رو روشن کنم.
در برنامه نویسی شی گرایی خیلی کاربرد دارد. در این نوع برنامه نویسی بجای استفاده از متغیر، آرایه، ماژول و هچنین تابع از یک مفاهیم پیشرفته تر مثل شی، کلاس، متد، مشخصه و رویداد و... استفاده میشود.
همه چی با تعریف کلاس شروع میشه:
کلاس: به تعریف مجموعه اشیایی گفته می شود که دارای مشخصات و توامندی های مشابه می باشند. مثل کلاس انسان ها، حیوان ها و ...، حال احتمال وجود زیر کلاس ها هم است. مثل کلاس مرد ها، کلاس زن ها، کلاس کودکان، کلاس خزندگان، پرندگان و ...
شی: به یک عضو از یک کلاس گفته می شود که مشخصه های خاصی دارد. دو شی از یک کلاس توانمندی های یکسانی دارند. اما از اونجایی که توانمندی ها بر اساس مقدار مشخصه هایش عمل می کنند، از اون جایی که دو شی از کلاس مقادیر متفاوتی برای مشخصه هایشات دارند می توان گفت که دو شی در عین حالی که توانمندی های یکسانی دارند، ممکن است که در عمل متفاوت عمل کنند. مثلا دو نفر هر دو می توانند والیبال بازی کنند ولی اونی که قد بلندتری داره بهتر بازی میکنه البته اگر تنها معیار قد باشه.
متد: به توانمندی های یک شی گفته می شود که بر اساس مشخصه ها تعریف میشود. معمولا این توانمندی برای کلاس (همه اعضای کلاس) در نظر گرفته می شود ولی برای همه اعضای کلاس قابل استفاده هست. البته هر عضو اون رو به صورت خاص بر اساس مشخصه های خودش اجرا می کنه. مثلا سلولی که مقدار 100 درونش هست با سلولی که مقدار 10 دارد جواب های متفاوتی برای یک متد خاص خواهند داشت.
مشخصه (property): به مشخصات اعضای یک کلاس گفته میشود که به صورت متغیر, آرایه, ساختار و حتی یک شی می تواند نمود پیدا کند. مثلا یک شیت یک شی هست که دارای مشخصات خاص خود هست. مثلا تعداد ستون. تعداد سطر که متغیر هستند. و یا یک ماتریس (آرایه دو بعدی) از سلول های که خود سلول ها شی هستند. اینها همه مشخصات یک کلاس شیت می باشند. یا یک انسان، می تواند مشخصه قد داشته باشد. می تواند مشخصه وزن داشته باشد. شامل دو شی دست و دو شی پا می باشد. در حالی که خود شی های دست و پا هم دارای مشخصه ابعاد و وزن هستند.
رویداد: به عملیاتی که متد های یک شی را فرآخوانی می کند رویداد گفته میشود. مثلا عدم وجود غذا در معده رویدادی است که باعث اتفاقات شیمیایی در معده شده، و این رویدادی است که شما احساس گرسنگی می کند. عمل احساس گرسنگی کردن برای شما یک متد است. اما ماشه trigger برای اتفاق همان نبود غذا در معده است. با توجه به سیستم علت و معلولی جهان اینکه چه چیزی رویداد است چه چیزی متد خیلی بستگی به این دارد که چه چیزی را شی در نظر بگیرید. اگر معده شی هست. ترشح مواد شیمیایی خودش متد هست. اما اگر انسان کامل شی است، ترشح خودش یک رویداد برای احساس گرسنگی است. در اکسل شی شیت هست. کلیک کردن روی برای شیت یک رویداد است ولی برای شما که کلیک می کنید یک متد است که رویدادش ممکن است در مغز شما شکل گرفته باشد. خیلی ساده بگم. رویداد علت یک اتفاق است و متد نمود اجرایی آن اتفاق. حال قطعا از نگاهی دیگر خود رویداد اتفاقی دیگر است.
وراثت: گاهی اوقات کلاس هایی زیر مجموعه کلاس هایی دیگر هستند. مثل کلاس مرد و کلاس زن که زیر مجموعه کلاس انسان هستند. در این جا به کلاس مرد و کلاس زن کلاس مشتق شده می گویند. هر دوی مرد و زن قد و وزن و ... دارند که از این بابت مشترک است. هر دو آنها توانمندی های مشترکی دارند. اینها توانمند ها و مشخصه هایی است که هر انسانی داراست. با این وجود تفاوت هایی در توامندی ها و مشخصه های آنها هست. آنچه مشترک است در کلاس والد یا همان کلاس انسان تعریف می شود و هر چه متفاوت است در کلاس فرزند یا همان کلاس های مرد و زن تعریف می شود. مثال ملموس در اکسل به ذهنم نمی رسد. ولی این فرامین زیر ببینید:
کد PHP:
Sheet1.Activate
Range("A1").Activate
Sheet1.Calculate
Range("B1").Calculate
Sheet1.Clear
Range("B1").Clear
ببینید همه وردشیت ها، سل ها، رنج ها، سطر ها و ستون ها این فرامین رو دارند. و خیلی فرامین و مشخصه های دیگر. مطمئنا فرمان clear یک بار در یک کلاس والد به نام control تعریف شده است و همه این اشیا ها شی هایی از کلاس هایی هستند که از آن کلاس والد مشتق شده اند. به این صورت شبکه ارتباطی زیبایی شکل می گیرد.
شما در طول روز به طور مداوم با شی گرایی سر و کار دارید. اگرچه یادگیری آن برای یک کاربر اکسل ضروری نیست، اگر مختصر اطلاعاتی درباره آن داشته باشید، قطعا در سرعت یادگیری شما، درک شما از محیط اکسل و همچنین خلاقیت شما برای ارائه راه های جدید تاثیر خواهد داشت.
چند نکته:
1- تمامی نرم افزار هایی که در دست شماست با شی گرایی نوشته شده اند.
2- VBA تمامش شی گراست. تا حالا شده فکر کنید این همه نظم چه طوری بجود اومده؟
3- ویندوز خودش شی گراست با شی گرایی نوشته شده. تا حالا دیدین جایی پنجره سیو عوض بشه؟!!!!!
4- تمام زبان های برنامه نویسی که الان داره استفاده میشه برای کاربرد های مختلف غیر از معدود نرم افزار هایی خیلی سریع تخصصی به صورت شی گراست.
5- از همه مهم تر زندگی من و شما هم شی گراست
از دوست خوبم که ایم پست و گذاشت تشکر می کنم. خیلی مبحث مهمی هست. لطفا دنبالش برید.
از کتاب های شی گرایی استفاده کنید. فروم هایی هم هست.
اگر کسی با VB.Net و یا C#.net و یا C++ آشنایی داره، می تونه کتاب های دایتل دایتل رو بخونه، خیلی زیبا و جامع توزیع داده شده.
موفق و پیروز باشید.
|
اخطار: این یک موضوع قدیمی است به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید. |
|
علاقه مندی ها (Bookmarks)