Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка - Основи Програмування C_.doc
Скачиваний:
46
Добавлен:
18.12.2018
Размер:
1.44 Mб
Скачать

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.