- •Мови програмування. Представлення даних.
- •1. Вступ. Про обчислювальну техніку.
- •2. Історія мов програмування.
- •3. Поняття про платформу .Net
- •4. Створення мови програмування с#.
- •5. Представлення даних. Необхідність типізації. Двійкова арифметика.
- •6. Основні поняття програмування.
- •Поняття про інтегроване середовище розробки VisualStudio (на прикладі Visual Studio 2005). Структура c#-програми.
- •1. Основні можливості інтегрованого середовища розробки VisualStudio .Net.
- •2. Структура програми мовою с#.
- •Int I; // Визначили цілу змінну
- •Основні елементи мови с#.
- •1. Основні вбудовані типи мови с#
- •2. Визначення та ініціалізація змінних, область їх видимості.
- •3. Приведення типів.
- •Інакше обидва операнди перетворюються до типу int;
- •4. Літерали (константи) мови с#.
- •5. Операції мови с#.
- •5.1. Арифметичні операції.
- •5.2. Операції інкременту та декременту.
- •5.3. Операції відношення (порівняння).
- •5.4. Логічні операції.
- •5.5. Порозрядні (бітові) операції.
- •5.6. Умовна (тернарна) операція.
- •5.7. Операції присвоєння.
- •5.8. Пріоритет операцій.
- •Основні інструкції керування мови с# – розгалуження та цикли.
- •1. Розгалуження у мові с#
- •2. Цикли у мові с#
- •2.1. Цикл for.
- •2.2. Цикл while.
- •2.3. Цикл do-while.
- •3. Керування виходом із циклів с#
- •Масиви в мові с#.
- •1. Визначення та ініціалізація масиву.
- •2. Цикл foreach
- •3. Багатовимірні масиви.
- •4. Використання деяких методів класу System.Array.
- •5. Масиви масивів. Непрямокутні масиви.
- •Структуровані типи даних (колекції) в мові c#
- •1. Основні структури даних та їх призначення
- •2. Використання списку ArrayList та узагальненого списку List
- •3. Використання асоційованого списку Hashtable та узагальненого словника Dictionary
- •Класи в мові с#.
- •1. Визначення класу.
- •2. Методи класу.
- •3. Методи з параметрами.
- •4. Конструктор класу.
- •Методи в мові с#.
- •1. Передача об’єктів методам.
- •2. Використання модифікаторів для параметрів методів.
- •3. Методи, що повертають об’єкти.
- •Перевантаження методів в мові с#.
- •1. Перевантаження методів.
- •2. Перевантаження конструкторів.
- •3. Використання ключового слова this.
- •4. Деструктор класу.
- •5. Метод Main ().
- •Статичні члени класу.
- •1. Статичні дані-члени класу.
- •2. Статичні методи-члени класу.
- •3. Статичний конструктор класу.
- •4. Статичні класи, локалізація та глобалізація
- •Властивості та індексатори.
- •1. Властивості.
- •2. Індексатори.
- •Спадкування в мові с#.
- •1. Поняття про спадкування та ієрархію класів.
- •2. Спадкування та правила доступу до членів класів.
- •3. Конструктори базового та похідних класів.
- •4. Посилання на екземпляри базового та похідних класів.
- •5. Поняття про поліморфізм.
- •6. Віртуальні функції – більш детальний погляд.
- •7. Абстрактні методи та класи.
- •Перевантаження операцій в мові с#.
- •1. Загальні відомості.
- •2. Перевантаження бінарних арифметичних операцій.
- •3. Перевантаження унарних операцій.
- •4. Перевантаження операцій відношення.
- •5. Перевантаження логічних операцій.
- •6. Підсумкові зауваження.
- •Структури та переліки в мові с#.
- •1. Структури.
- •2. Переліки.
- •Делегати, події та обробники подій
- •1. Делегати (delegate).
- •2. Події та їх обробники.
- •Атрибути та їх використання
- •Рекомендована література
2. Методи класу.
Додамо в клас методи у наступному прикладі. В ньому визначений клас, що містить інформацію про точку на площині. Точка задається своїми полярними координатами, проте завдяки методам класу можна одержати значення її координат у декартовій системі.
using System;
namespace Polar_Point
{
class Polar_Point // клас - полярна точка
{ // дані-члени класу - полярні радіус та кут
public double r, phi;
// методи-члени класу
public double xCoord() // абсциса полярної точки
{
return r * Math.Cos(phi);
}
public double yCoord() // ордината полярної точки
{
return r * Math.Sin(phi);
}
}
class Program
{
static void Main()
{ // cтворення екземпляру полярної точки
Polar_Point p1 = new Polar_Point ();
p1.r = 10; // задання полярного радіусу
p1.phi = Math.PI * 0.25; // задання полярного кута
// Друкуємо абсцису полярної точки
Console.WriteLine("абсциса = {0}", p1.xCoord());
// Друкуємо ординату полярної точки
Console.WriteLine("ордината = {0}", p1.yCoord());
}
}
}
Клас Polar_Point містить 2 змінні дійсного типу: r та phi – це відкриті (public) дані-члени класу, а також 2 методи-члени класу xCoord() і yCoord() – це функції, що повертають дійсні значення декартової абсциси та ординати полярної точки. Повернення результату ці методи здійснюють завдяки інструкції
return <вираз>;
Тип виразу має збігатись із типом, вказаним у визначенні даного методу в класі. Якщо деякий метод не повинен повертати ніякого результату при його визначенні вказується службове слово void, яке означає «порожній». В тілі такого методу інструкція return відсутня. Проте її можна додати для переривання виконання методу за якоюсь умовою.
У класі Program створюється екземпляр p1 класу Polar_Point та здійснюється доступ до його даних r та phi, а потім відбувається звертання до його методів xCoord() і yCoord().
Зверніть увагу на програмний рядок:
Polar_Point p1 = new Polar_Point();
У ньому визначається змінна p1 reference-типу, яка відразу ініціалізується адресою області пам’яті, виділеної під об’єкт (екземпляр) p1 класу Polar_Point. Той самий результат можна було одержати за два кроки подібно до попереднього прикладу:
Polar_Point p1; // декларація полярної точки
p1 = new Polar_Point();// cтворення екземпляру полярної точки
Може виникнути слушне питання: чому при створенні змінної p1 операцією new поруч з іменем класу Polar_Point використовуються круглі дужки так, ніби відбувається звертання до методу? Справа у тому, що насправді для створення екземпляру класу автоматично викликається спеціальний метод, одноіменний з класом – так званий конструктор класу, про який говоритимемо далі. Зверніть увагу також, що звертання до методів класу Polar_Point відбувається з допомогою операції доступу «крапка» – спочатку ідентифікатор екземпляру класу, потім ідентифікатор члену класу: p1.xCoord() або p1.yCoord().
Зауваження. Зовсім не обов’язково визначення класу Polar_Point розміщувати у одному файлі із класом Program – він може знаходитись в окремому файлі проекту. Одним із способів створення окремого файлу для декларації класу є наступний. Перемістіть курсор на назву проекту Polar_Point попереднього прикладу у вікні Solution Explorer (див малюнок екрану). Натиснувши на праву кнопку миші, виберіть команду Add -> New Item. У вікні «Add New Item» виберіть піктограму «Class». Вам залишилось лише заповнити поле Name для назви файлу класу та натиснути на кнопку Add. Відповідний файл у проекті буде для вас створений. Помістіть у нього визначення класу Polar_Point та використовуйте цей клас для створення об’єктів та роботи з ними у файлі Program.cs.