کامپیوترهانرم افزار

کلاس و روش خلاصه: شرح، ویژگی ها و ویژگی ها. تفاوت بین کلاس انتزاعی و رابط کاربری چیست؟

هر کسی که حداقل حداقل دانش برنامه نویسی داشته باشد، تعجب می کند که چرا کلاس پایه انتزاعی وجود دارد. هدف آنها چیست؟ چگونه یک کلاس انتزاعی ایجاد کنیم؟ مزایای آنها در عمل چیست؟ چرا آنها در برنامه نویسی نیاز دارند و چه ویژگی هایی از اجرای آنها باید در نظر گرفته شود؟

کلاس های خلاصه

بنابراین در برنامه نویسی یک واحد از کد برنامه نامیده می شود، بر اساس آن نمی توان اشیاء ایجاد کرد. لازم به ذکر است که وارث این طبقه ممکن است انتزاعی نباشد. بنابراین، ایجاد اشیاء بر اساس آنها کاملا امکان پذیر است. اگر ما نمونه ای از جاوا را در نظر بگیریم، ما چنین مدل سازی می کنیم: ما می توانیم سازندگان را در کلاس A توصیف کنیم. اما ما نمی توانیم از آنها استفاده کنیم. راه خروج از این وضعیت، اعلام یک متغیر به عنوان مرجع است. و لازم است به وضوح بیان شود که آن را به یک شی از کلاس A اشاره می کند. اما چگونه می توان این کار را انجام داد؟ بازیگران به ما در این امر کمک خواهند کرد. لازم به ذکر است که کلاس والدین همیشه بیشتر از کودک در نظر گرفته می شود. در بسیاری از زبان های برنامه نویسی، بازیگران به صورت خودکار استفاده می شوند. اما اگر اعتماد به نفس در دسترس بودن چنین مکانیزمی وجود نداشته باشد، باید به صراحت مرجع را به شیء مشخص کنید.

روشهای خلاصه

آنها چه هستند؟ روش های خلاصه آنهایی هستند که در کلاس مورد بررسی قرار نمی گیرند. بنابراین، پس از پرانتز (که در آن استدلال های مورد استفاده در آنها لیست شده است) قرار گرفتن در حال غوطه دادن فرفری (پس از آن بلوک از شرح روش قرار داده شده است)، اما فقط یک نقطه عطفی است. بنابراین، در این مورد هیچ اطلاعاتی در مورد آنچه که او انجام می دهد وجود ندارد. در اینجا می توانید از این سوال بپرسید: "چرا روش بدون اجرای است؟" پس از همه، از آن نمی توان استفاده کرد! البته این در کلاس نیست که در آن توصیف شده است. اما اگر این وضعیت را از نقطه نظر نسل در نظر بگیریم، می توان آن را نام برد. و براساس توصیف خاص موجود در این کلاس عمل می کند.

ویژگی های روش انتزاعی

در استفاده از آنها محدودیت وجود دارد. این را در مثال زبان برنامه نویسی جاوا در نظر بگیرید . چنین نیازمندی وجود دارد: اگر حداقل یک کلاس در این روش وجود داشته باشد، باید لزوما انتزاعی باشد. و در چه مواردی مناسب است از چنین سازه هایی استفاده شود؟ بیایید در مورد کلاس های حیوان خانگی نگاهی بیندازیم. برای شروع، باید فهمید که صدایی که همه آنها منتشر می کنند وجود ندارد. بنابراین، در کلاس عمومی ترین، اجرای روش صدا مشخص نیست. اما برای او یک بدن ایجاد شده است، که توسط بلوک ها جدا شده است. و در حال حاضر در آینده، هنگامی که یک کلاس سگ، گربه یا همستر ایجاد می شود، یک روش جداگانه برای آن تجویز خواهد شد که در آن تمام ویژگی ها مشخص می شود.

رابط کاربری

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

وراثت چندگانه چندگانه

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

داده های خلاصه

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

اشیاء

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

وراثت

از آنجایی که برنامه نویسی بر اساس ساخت یک درخت سلسله مراتبی از روابط بین اشیاء است، سوال مطرح می شود که خواص کتابخانه های کد اصلی باید به انواع زیرین منتقل شود. میراث به عنوان رابطه ای درک می شود زمانی که یک رفتار و ساختار چیز دیگری را تکرار می کند. در زندگی عادی، این را می توان در همه جا یافت. این نیز به برنامه نویسی با توجه به عناصر انتزاعی منتقل شد. به عنوان یک مقایسه، می توانیم به این واقعیت اشاره کنیم که چنین ارگانیکی به عنوان یک پرنده وجود ندارد. این یک نام انتزاعی است به عنوان یک نمونه خاص، یک درایو، یک سیب زمینی یا یک جادوگر به ارمغان می آورید. با توجه به وراثت، می توانیم از کتابخانه های کلاس استفاده کنیم و همچنین آنها را برای یک برنامه خاص توسعه دهیم. چنین ابزاری اجازه می دهد ما را به ایجاد اشیاء جدید، به طور همزمان اضافه کردن یا تغییر خواص یک از قبل ایجاد شده است. وارث تمام روش ها و زمینه های اجداد خود را می گیرد و در صورت لزوم ویژگی های خود را به دست می آورد. با توجه به این که عناصر انتزاعی و اصل میراث وجود دارد، فرصت های زیادی برای اصلاح در چارچوب برنامه نویسی شی گرا وجود دارد. علاوه بر این، به شما اجازه می دهد تا به انعطاف پذیری راه حل وظایف رسیدگی کنید. وقتی وراثت می کنید، داده ها و توابع به کلاس جدید منتقل می شوند.

پلیمورفیسم

برای انجام وظایف مختلف انواع مختلف وظایف لازم است. در این مورد، امکان انجام اقدامات مختلف وجود دارد، محتوای آن به نوع جسم که کار انجام می شود بستگی دارد. پلیمورفیسم به عنوان ویژگی عناصری که دارای یک والد مشترک است درک می شود و مشکالت مشابهی را در معنای معنایی به شیوه های مختلف انجام می دهد. ما با حیوانات تقلید می کنیم. چنین اقداماتی وجود دارد - برای اجرا. همه ما درک می کنیم که چگونه اتفاق می افتد. اما با حیوانات مختلف (شیر، فیل، شامپانزه، تمساح، لاک پشت) این عمل متفاوت انجام خواهد شد. در این مورد، توسعه دهنده مسئول حرکت آنهاست، که در صورت لزوم می تواند یک زیر برنامه خاص برای یک مورد خاص ایجاد کند، الگوریتم را توسعه دهد و با موفقیت آن را اجرا کند. این کار با استفاده از مجموعه ای از روش ها انجام می شود. در این مورد، در هر کلاس جداگانه، برنامهنویس نشان می دهد که کدام ویژگی کدام ذاتی است. تغییر چیزی در فرزندان، شما می توانید دستیابی به برخی از موارد لازم در این مورد اقدامات. چنین نفوذ پلمورفیسم شی است. به طور کلی یک کلاس انتزاعی یک ابزار برنامه نویسی بسیار مفید است.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 fa.unansea.com. Theme powered by WordPress.