русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Об'єктно-орієнтоване програмування C# | Сі Шарп

Визначення класу на мові С#:

class клас {
тип мінлива;

тип метод(аргументи) {
програмний код
}
}

Визначення класу складається з визначення поля класу (інформація, що описує об'єкти даного класу) і методів класу (дії, які можуть виконувати об'єкти даного класу, або можна виконувати над об'єктами даного класу).
Об'єктно-орієнтованих підхід у програмування спирається на наступні принципи:

  • інкапсуляція;
  • спадкування;
  • поліморфізм.

Інкапсуляція - здатність ховати деталі реалізації об'єктів від користувачів цих об'єктів. Інкапсуляція, з одного боку, дозволяє приховувати від користувача об'єкта деталі його внутрішньої реалізації (принцип "чорного ящика"), а, з іншого боку, використовується для запобігання неконтрольованого доступу до внутрішніх даними об'єкта.

Спадкування - можливість створювати нові визначення класів на основі існуючих, розширюючи і перевизначаючи їх функціональність. Спадкування використовується для повторного використання коду. Спадкування буває двох видів: ставлення типу "мати" (класичне спадкування) і ставлення типу "мати" (включення або делегування).

Поліморфізм - підтримка виконання потрібного дії в залежності від типу переданого об'єкта. Поліморфізм застосовується для універсальної обробки схожих об’єктів різних типів. Поліморфізм буває двох видів: заснований на "ранньому зв'язуванні" (використовує механізм віртуальних методів в класах, пов'язаних класичним спадкуванням) і "пізньому зв'язуванні" (використовується для об'єктів, не пов'язаних спадкуванням).

Для реалізації інкапсуляції в мові C# використовуються модифікатори доступу і властивості. Мова Із# підтримує наступні модифікатори доступу (модифікатори видимості):

  • public - поля, властивості й методи є загальнодоступними.
  • private - поля, властивості й методи будуть доступні тільки в класі, в якому вони визначені.
  • protected - поля, властивості й методи будуть доступні як в класі, в якому вони визначені, так і в будь-якому похідному класу.
  • internal - поля, властивості й методи будуть доступні у всіх класах всередині збирання, в якій визначено клас.

Для контролю доступу до полів класу в мові C# можна використовувати властивості. Всередині класу властивість визначається у вигляді пари методів для присвоєння значення властивостей і для читання значення властивості. Для користувачів об'єктів класу властивість представляється як поле класу. Синтаксис визначення властивості класу:

тип властивість {
get {
return значення;
}
set {
поле=value;
}
}

Метод get використовується для отримання значення властивості. Метод set використовується для зміни значення властивості. Всередині методу set нове значення властивості передається у вигляді змінної value. За допомогою властивостей можна перевірити нове значення поля, перш ніж змінити поле; виконати додаткові дії при зміні або читанні поля, представити для користувача у вигляді поля інформацію, яка насправді не є полем класу.

Для реалізації класичного спадкування в мові C# використовується наступний синтаксис:

class нащадок: батько {

}

Мова C# не підтримує множинного спадкування. Для виклику в конструкторі класу-нащадка конструктора класу-батька використовується ключове слово base:

class нащадок: батько {
нащадок(аргументи):base(аргументи){
}
}

Також ключове слово base використовується для дзвінків методів класу-батька з’язок перевизначених методів в класі-нащадка. Мова C# також підтримує спадкування включенням.

Для реалізації поліморфізму, заснованого на віртуальних методи, в мові C# використовуються ключові слова virtual і override:

class батько {
virtual метод(аргументи){
}
}

class нащадок: батько {
override метод(аргументи){
}
}

Крім того, мова C# підтримує оголошення абстрактних методів з допомогою ключового слова abstract. Абстрактні методи не містять реалізації і повинні бути замінені з допомогою ключового слова override в класах-нащадків. Клас, в якому оголошений хоча б один абстрактний метод, є абстрактним і повинен бути оголошений у допомогою ключового слова abstract. Об'єкти абстрактного класу не можуть бути створені.

Переглядів: 3083

Повернутися в зміст:Введення в розробку розподілених інформаційних систем




Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн