Основы объектно-ориентированного программирования на языке C# book | Page 17

1.6 Програмування з використанням елементiв ООП У лiфта є висота, ширина, довжина — це властивостi. Вiн умiє перемiщатися — нагору/униз, це методи. Лiфти, що встановленi в наших будинках — це конкретнi екземпля- ри класу “Лiфт”, у яких є особистий номер, розмiри. Також є iнтер- фейс — це кнопки керування лiфтом. Для опису лiфта треба задати: – поля для опису обладнання лiфту; – методи для опису як вiн повинен перемiщатися – нагору / униз; – iнтерфейс для опису взаємодiı̈ людини й лiфта. За проектом, кресленням ми можемо виготовити багато лiфтiв. Мо- жемо, наприклад, мiняти ı̈м у колiр дверей (атрибут public , вла- стивостi читання/запису), але не можемо мiняти швидкiсть, яка постiйна (атрибут public , властивостi лише читання). У нього є багато iнших внутрiшнiх властивостей, якi нам невiдомi , вони є схо- ваними (атрибут private ), але завдяки ним лiфт працює. Приклад 4. Клас Автомат “Калашникова” (class Mashinegan). Автомат має: магазин, прицiльну рамку, багнет-нiж, спусковий га- чок, iншi деталi, властивi всiм автоматам. Також вiн має рiзнi режи- ми стрiлянини — одиночнi й черга. Залежно вiд поточного режиму стрiлянини (читай стану), автомат по-рiзному стрiляє: одиночними пострiлами або чергою. Таким чином, при однаковому натисканнi на спусковий гачок автомат має рiзну поведiнку. У мiру стрiлянини кiлькiсть патронiв у магазинi зменшується (значення поля “магазин” змiнюється). Для опису автомата треба задати: – поля для опису устрою автомата; – методи для опису, як повинен автомат поводитися, наприклад, стрiляти в рiзних режимах; – iнтерфейс для опису взаємодiı̈ стрiлка й автомата. Без ООП ми, для iмiтацiı̈ роботи автомата, викликали щось на- чебто функцiı̈ Fire(ammocount, burstmode) , де ammocount – кiлькiсть набоı̈iв у магазинi, burstmode – режим стрiлянини. А в ООП уся iнформацiя зберiгається в об’єктi й ми викликаємо просто метод Fire() , який входить в опис класу Mashinegan . Приклад 5. Клас “Автомобiль”. В автомобiля є поля, властивостi i є функцiı̈, якi вiн може ви- конувати. До полiв можна вiднести, колеса, двигун, кузов, сидiння 17