Тема: поняття об'єкта у мові програмування, його властивостей і методів. Створення програми, її виконання та налагодження мовою C#.
Мета: сформувати визначення об'єкта у мові програмування, ознайомити учнів з його властивостями та методами, навчити створювати програми мовою C#.
По завершенню вивчення учень:
Обладнання: ПК із встановленою ОС і середовищем програмування мовою C# або стійким сполученням з Інтернетом для використання online-компілятора C# (наприклад, Compile C# online або rextester.com).
Структура уроку
Хід уроку
1. Організаційний момент
Вітання з класом. Перевірка присутності і готовності учнів до уроку. Перевірка виконання домашнього завдання.
Мотивація навчання: на цьому уроці ви ознайомитеся з основами об'єктно-орієнтованого програмування (ООП) мовою C#. Ви дізнаєтеся про принципи ООП і навчитеся писати прості програми мовою C#.
Найчастіше об'єкти, що створені на основі принципів ООП, відображають реальні предмети. Наприклад, при створенні форуму сайту доречно мати клас Member для збереження даних про кожного учасника форуму (ім'я, обліковий запис, електронна адреса, пароль тощо). Для цього класу потрібно означити (описати) методи опрацювання даних: реєстрація, авторизація, вихід із системи тощо.
2. Актуалізація опорних знань
Завдання. Назвати поняття, виділені жирним шрифтом, і порівняти з поданим описом у тексті щодо об'єктно-орієнтованого програмування (ООП).
C# (вимовляти сі шарп) — об’єктно-орієнтована мова програмування, розроблена у 1998−2001 роках групою інженерів під керівництвом Андерса Хейлсберга в компанії Microsoft як мова розробки застосунків для платформи Microsoft NET Framework.
Основні переваги С#:
C# створено паралельно з каркасом Framework .Net, тому ця мова повністю враховує всі його можливості — як FCL (Framework Class Library — стандартная библиотека класів платформи «.NET Framework»), так і CLR (Common Language Runtime — «загальномовне виконавче середовище» — віртуальна машина);
C# — повністю об'єктно-орієнтована мова, де навіть типи, вбудовані у мову, представлено класами, з можливостями спадкування й універсалізації;
C# успадкувала кращі риси мов C/C++;
завдяки каркасу Framework .Net, що стали надбудовою над операційною системою, програмісти C# одержують ті самі переваги роботи з віртуальною машиною, що й програмісти Java;
виконавче середовище CLR є собою компілятор проміжної мови, у той час як віртуальна Java-машина є інтерпретатором;
потужна бібліотека каркасів підтримує зручність побудови різних типів застосунків мовою C#, дозволяючи легко будувати Web-служби, інші види компонентів, досить просто зберігати й одержувати інформацію з бази даних й інших сховищ даних.
3. Вивчення нового матеріалу
Оголошення класу за допомогою службового слова case має такий вигляд:
[модифікатор_доступу] class [назва_класу] { // тіло класу }
Модифікатори доступу для класів:
Public — доступ до класу можливий з будь-якого місця однієї збірки або з іншої збірки, на яку є посилання;
Internal — доступ до класу можливий лише зі збірки, в якій він оголошений.
Приклад оголошення класів Student і Pupil:
class Student // без вказівки модифікатора доступу буде internal { // тіло класу } public class Pupil { // тіло класу }
Коректність оголошення можна перевірити, вставивши його у приклад з сайту rextester.com і виконавши відповідний код.
Члени класу
Дані-члени — це ті члени, які містять дані класу:
Полe (field) — будь-які змінна, оголошена в області класу. Поле може мати вбудований числовий тип або бути екземпляром іншого класу. Наприклад, у класі календаря може бути поле, що містить поточну дату.
Стала — величина, оголошена в області класу, значення якої встановлюють під час компіляції і не змінюють протягом виконання програми.
Подія — член класу, що дозволяє об'єкту повідомляти про зміни (зміна властивості класу, взаємодія з користувачем).
Функції-члени, які забезпечують функціональність маніпулювання даними класу:
Метод (method) — дія, яку може виконати клас. Методи можуть параметри приймати (вхідні дані) і повертати (вихідні дані) за допомогою параметрів. Метод може також повертати значення безпосередньо, без використання параметрів.
Властивість (property) — набір функцій, які можуть бути досяжні для користувача так само, як загальнодоступні поля класу.
Конструктор (constructor) — спеціальна функція, яку буде викликано автоматично при ініціалізації об'єкта. Її назва збігається з назвою класу, до якого вона належить, і вона не має типу повернення. Конструктори корисні для ініціалізації полів класу — див. приклад частин коду:
… public class Pupil { public string Name {get; set;} public Pupil(string Name) { this.Name = Name; } } … Pupil Pupil1 = new Pupil("Тарас"); …
Якщо у поданому вище прикладі не записати {get; set;}, буде створено поле (field). Разом з {get; set;} створено властивість (property), що істотньо полегшує роботу з класом (у цій роботі це питання не розглянуто).
Метод завершення (фіналізатор, finalizer) — спеціальна функція, яку буде викликано, коли середовище CLR визначить потребу видалити об'єкт. Її зазвичай застосовують для правильного опрацювання ресурсів, які повинні бути вивільнені. Вона має таку саму назву, що й клас, але з символом тильди попереду. Передбачити точно, коли буде викликано фіналізатор, неможливо.
Операція (operator) — найпростіша дія на кшталт «+» або «-», яку C# дозволяє доозначити (переозначити), тобто вказати, як вона працюватиме з класами (так звана перевантаження операції).
Індексатор (indexer) — дозволяє індексувати об'єкти таким самим способом, як масив або колекцію.
Всі члени класу, як і сам клас, мають свій рівень доступу. Тільки у членів їх може бути вже п'ять:
Public — доступ до члена можливий з будь-якого місця однієї збірки, або з іншої збірки, на яку є посилання;
Protected — доступ до члена можливий лише усередині класу, або у класі-спадкоємця (при спадкуванні);
Internal — доступ до члена можливий лише зі збірки, в якій його проголошено;
Private — доступ до члена можливий лише всередині класу;
Protected internal — доступ до члена можливий з однієї збірки, або з класу-спадкоємця інший збірки.
Якщо не вказано модифікатор доступу для члена, йому буде надано режим достопу private. За допомогою модифікаторів доступу в C# реалізовано один із базових принципів ООП — інкапсуляцію.
Поле класу — це змінна, оголошена усередині класу. Як правило, поля оголошують з модифікаторами доступу private або protected, щоб заборонити прямий доступ до них. Для отримання доступу до полів потрібно використовувати властивості або методи. Приклад оголошення полів у класі:
class Student { private string firstName; private string lastName; private int age; }
Створення об'єктів здійснюють за допомогою службового слова new і назви класу — див. фрагмент коду:
class Student { private string firstName; private string lastName; private int age; public string group; } class Program { static void Main (string [] args) { Student student1 = new Student (); Student student2 = new Student (); } }
Доступ до членів об'єкта здійснюють за допомогою оператора «.», тобто записуючи назву об'єкта й назву його члена через крапку — див. приклад коду.
При спробі звернутися таким чином ззовні класу до полів з модифікатором доступу private буде виявлено помилку компіляції з повідомленням про недосяжність такого поля внаслідок рівня захисту (даних).
4. Інструктаж з ТБ
5. Закріплення вивченого матеріалу
Завдання 1. Написати код мовою C#, у якому:
створити клас Computer з 9 полями: DVD, Hdd, Keyboard, Model, Monitor, Motherboard, Mouse, Processor, Videocard, кожна — з модифікатором доступу public;
створити об'єкт — представник класу Computer — з такими значеннями властивостей (перелічено у тому самому порядку, що й вище): "DVD ROM", "HITACHI 1TB", "RAZER", "HP", "Dell 27 inch", "ASUS ROG", "GENIUS", "CORE i7", "Nvidia Geforce 1050Ti";
вивести значення усіх полів створеного об'єкта.
Записати код у файл з назвою Ваше прізвище1.txt у вказану вчителем теку. Порівняти з демонстраційним розв'язанням.
Завдання 2. Написати код мовою C#, у якому:
Виставлення оцінок.
7. Домашнє завдання
Написати код C#, у якому cтворити клас User з властивостями login, password, email, rating. Як усталено значення рейтингу встановити нульовим.
Текст упорядкувала Заєць Ірина Юріївна, вчитель інформатики школи І-ІІІ ступенів № 78 Печерського району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 11.12.2017 р. по 15.12.2017 р.