راهنمای اصول برنامه نویسی شی گرا
یک زبان برنامه نویسی به طور کلی بر اساس پشتیبانی آن از یک یا چند پارادایم طبقه بندی می شود.
برنامه نویسی شی گرا یکی از این پارادایم هاست که در آن کد به صورت اشیا سازماندهی می شود.
برای توسعه برنامه های دسکتاپ و موبایل یا برنامه های پیچیده تر وب یا برنامه های سازمانی استفاده می شود.
با استفاده از برنامه نویسی شی گرا می توانید نرم افزار ماژولار و مقیاس پذیر بسازید که نگهداری آن آسان باشد.
بیشتر بخوانید
تلفن شما در شرف بلند شدن است. در اینجا نحوه مدیریت تست سیستم هشدار اضطراری ملی آمده است
در این مقاله با اصول برنامه نویسی شی گرا آشنا می شوید که پایه و اساس ساخت سیستم های قوی را می گذارد.
ما از جاوا به عنوان زبان برنامه نویسی برای مثال های ارائه شده در زیر استفاده خواهیم کرد.
برنامه نویسی شی گرا چیست؟
برنامه نویسی شی گرا یک روش برنامه نویسی است که موجودیت های دنیای واقعی را در قالب اشیا مدل می کند.
این اشیاء نمونه هایی از کلاس ها هستند.
یک کلاس را می توان به عنوان یک طرح اولیه در نظر گرفت و هر کلاس می تواند شامل فیلدهایی باشد که ویژگی های شی را تعریف می کند و متدهایی که رفتار شی را توصیف می کنند. هر کلاس را می توان به طور مستقل توسعه، آزمایش و اشکال زدایی کرد.
اکنون که تعریف اولیه برنامه نویسی شی گرا را درک کرده اید، اجازه دهید مستقیما وارد آن شویم و با اصول اصلی آن آشنا شویم.
چهار اصل یا ستون اصلی در الگوی برنامه نویسی شی گرا وجود دارد. آن ها هستند:
انتزاع - مفهوم - برداشت
کپسوله سازی
وراثت
پلی مورفیسم
منظورشون چیه؟ اجازه دهید با یک توضیح ساده و به دنبال آن یک مثال برای هر یک از آنها در بخش های بعدی بیشتر تحلیل کنیم.
انتزاع چیست؟
انتزاع به عنوان مفهوم پنهان کردن جزئیات پیاده سازی و افشای تنها عملکردهای ضروری شی به کاربر تعریف می شود.
کلمات کلیدی که باید در اینجا به خاطر بسپارید عبارتند از: "پنهان سازی پیاده سازی".
انتزاع در جاوا را می توان از طریق کلاس های Interfaces و Abstract بدست آورد.
در مثال بالا، انتزاع با کمک یک کلاس انتزاعی به نام Animal
به دست می آید.
در اینجا، تنها عملکرد ضروری کلاس از طریق متد makeSomeNoise()
در معرض دید قرار می گیرد.
جزئیات پیاده سازی در کلاس انتزاعی پنهان شده است و فقط در کلاس بتن Dog
ارائه می شود که کلاس Animal
را گسترش می دهد.
توجه داشته باشید که در حین بحث در مورد وراثت، در مورد کلمه کلیدی extends
اطلاعات بیشتری کسب خواهید کرد.
کپسولاسیون چیست؟
کپسوله سازی به مفهوم کپسوله کردن یا جمع کردن متغیرهای عضو (داده ها) و روش ها (رفتار) یک شی در یک واحد واحد، مانند یک کلاس، اشاره دارد.
اطلاعات داخلی شی پنهان می شود تا بتوانیم از تغییرات ناخواسته جلوگیری کنیم و فقط دسترسی کنترل شده را مجاز کنیم. کلمات کلیدی که باید در اینجا به خاطر بسپارید عبارتند از: "مخفی کردن اطلاعات".
کپسوله سازی در جاوا از طریق اصلاح کننده های دسترسی به دست می آید. فیلدها را بهعنوان private
علامتگذاری میکنیم و از طریق روشهای عمومی تنظیمکننده و دریافتکننده در دسترس قرار میدهیم.
در مثال بالا، فیلدها و متدها در کلاسی به نام Person
کپسوله می شوند.
شما name
و age
فیلدها را به عنوان private
اعلام می کنید و متدهای عمومی تنظیم کننده و دریافت کننده getName()
، setName()
، getAge()
و setAge()
برای تغییر مقادیر در صورت نیاز ارائه می دهید.
ارث چیست؟
وراثت یک رابطه سلسله مراتبی بین دو کلاس برقرار می کند.
در این مفهوم، یک کلاس فیلدها (ویژگی ها) و متدها (رفتار) کلاس دیگر را به ارث می برد، در حالی که ویژگی ها و رفتار خود را دارد.
کلاسی که از دیگری ارث می برد، کلاس فرعی، کلاس مشتق شده یا کلاس فرزند نامیده می شود. کلاسی که زیر کلاس از آن به ارث می برد، به عنوان سوپرکلاس، کلاس پایه یا کلاس والد شناخته می شود.
در جاوا، وراثت با استفاده از کلمه کلیدی extends
به دست می آید.
در مثال بالا، کلمه کلیدی extends
نشان می دهد که کلاس Dog
زیر کلاس کلاس Animal
است.
کلاس Dog
متد makeSomeNoise()
از کلاس Animal
به ارث می برد. این به کلاس Dog
اجازه می دهد تا از روش استفاده مجدد کند و پیاده سازی خود را بدون نیاز به بازنویسی کامل آن ارائه دهد.
همچنین می توانید توجه داشته باشید که کلاس Dog
رفتار خاص خود را از طریق متد doSomething()
دارد.
وراثت یک رابطه "IS-A" را بین دو کلاس تعریف می کند. در مثال ما، سگ IS-A Animal است.
توجه داشته باشید که جاوا از وراثت چند سطحی پشتیبانی می کند. به عنوان مثال، class Labrador
از class Dog
ارث می برد، که به نوبه خود از class Animal
ارث می برد. با این حال، از وراثت چندگانه پشتیبانی نمی کند. یعنی یک کلاس مجاز به ارث بردن از دو یا چند کلاس والد نیست.
پلی مورفیسم چیست؟
پلی (بسیاری)، مورف (شکل).
چند شکلی توانایی یک شی را برای نمایش در اشکال مختلف تعریف می کند.
در جاوا، پلی مورفیسم را می توان به دو نوع دسته بندی کرد: چندشکلی زمان کامپایل و چندشکلی زمان اجرا.
چند شکلی زمان کامپایل از طریق اضافه بار روش به دست می آید - چندین روش نام یکسان دارند اما نوع یا تعداد پارامترهای متفاوتی دارند.
در مثال بالا، ما متد add()
بارگذاری کرده ایم. دو روش با add
یک نام وجود دارد اما تعداد پارامترهای آنها متفاوت است.
در حین کامپایل، بر اساس تعداد پارامترهای ارسال شده به متد، فراخوانی مناسب انجام می شود.
چندشکلی زمان اجرا از طریق نادیده گرفتن روش به دست می آید - یک زیر کلاس دارای روشی با همان نام و مجموعه ای از پارامترهای مشابه روش سوپرکلاس خود است. با این حال، اجرای خود را از روش فراهم می کند.
در اینجا، وضوح روش در زمان اجرا اتفاق می افتد.
در مثال بالا، متد makeSomeNoise()
از کلاس Animal
توسط زیر کلاسهای Dog
و Cat
لغو شده است و آنها پیادهسازی خود را از این متد ارائه میکنند.
در طول ایجاد شی، متغیر Animal
یک شی Dog
یا Cat
را نگه میدارد و زمانی که متد makeSomeNoise()
فراخوانی میشود، متد overridd مناسب بر اساس نوع شی واقعی فراخوانی میشود.
نتیجه
در این مقاله، اصول اساسی برنامه نویسی شی گرا (OOP) را تحلیل کردیم.
آشنایی با این مفاهیم برای ساختن سیستم های نرم افزاری قوی، قابل نگهداری و مقیاس پذیر بسیار مهم است.
ارسال نظر