You are on page 1of 25

Лекція 8.

Властивості.
Деструктори. Створення
бібліотеки класів.
Властивості
Властивість – спеціальний метод класу,
який з точки зору використання виглядає
як поле, але при читанні та запису
значення виконує програмний код.
Student stud = new Student();
stud.Age = 18;
Запис значення у
властивість
(виглядає як
запис значення у
поле)
Властивості
Особливості оголошення властивостей:
1. Властивість не зберігає значення у
собі, вона є «посередником», як і
метод. Для збереження значення
використовується закрите поле.
2. Властивість дозволяє написати код,
який виконуватиметься при читанні
властивості і при записі властивості.
3. Властивість дозволяє перевірити
значення перед записом.
Властивості
Особливості оголошення властивостей:
4. Властивість дозволяє робити
перетворення значень при читанні та
запису.
5. Властивість дозволяє заборонити
читання або запис значення.
Для оголошення властивості потрібно:
1. Оголосити захищене поле, у якому
зберігатиметься значення.
2. Оголосити властивість і записати код
акцесорів.
Властивості
Реалізація властивості у класі:
class Student
{
Поле для збереження
private int age; значення
public int Age
{ Оголошення
властивості
set {
Виконується
if (value > 15 && value < 130)

}
age = value; при записі
значення
get {
return age; Виконується при
} читанні значення
}
}
Властивості
Синтаксис оголошення властивості:
class Клас В акцесор set
{ автоматично
private тип поле; передається
public тип Властивість
{
значення, яке
set { записується у
… властивість. Його
} можна зчитати у
get { змінній value.

} В акцесорі get повинне
} повертатися значення
} за допомогою return
Властивості
Приклад реалізації властивості:
class Student Назви полів, в яких зберігають
{ значення властивості пишуть з
private int age; маленької літери і роблять їх
public int Age захищеними.
{
set {
18
if (value > 15 && value < 130)
age = value;
}
get {
return age;
} Student stud =
} new Student();
} stud.Age = 18;
Властивості
Один з акцесорів може бути відсутнім.
class Student { Якщо немає
private string password;
public string Password { акцесора get, то
set { заборонено
if (value.Length > 5) зчитувати
password = value;
} значення з
} властивості
}

Student stud = new Student();


stud.Password = "admfnf";
Console.WriteLine(stud.Password);
Властивості
Один з акцесорів можна зробити
приватним. У даному
class Student { прикладі у
private string password; методах класу
public string Password {
set {
буде дозволено і
if (value.Length > 5) читати і писати у
password = value; властивість.
}
private get { У «зовнішньому» коді
return password; можна буде лише
}
} записувати значення
} у властивість
Властивості
У C# є можливість оголошувати
автоматичні властивості.
class Student {
public string Name { set; get; }
public int Age { set; get; }
}
У такому випадку компілятор
автоматично генерує поле для
зберігання властивості.
Властивості
Код до Як розуміє код
компілятор після
компіляції
компіляції:
class Student { class Student {
public string Name string name;
{ set; get; } int age;
public int Age public string Name {
{ set; get; } set { name = value; }
} get { return name; }
}
public int Age {
Автоматично
set { age = value; }
згенеровано приватні
get { return age; }
поля для збереження
}
значень
}
Властивості
Приклад. Реалізувати
властивості, які дозволять
представляти температуру
повітря у градусах, кельвінах та
фарингейтах.
Властивості
Програмний код:
class Weather {
private double temperatureInDegrees;
public double TemperatureDegrees {
set { temperatureInDegrees = value; }
get { return temperatureInDegrees; }
}
public double TemperatureFahrenheit {
set { temperatureInDegrees = 5.0 / 9 * (value - 32); }
get { return 9.0 / 5 * temperatureInDegrees + 32; }
}
public double TemperatureKevlin {
set { temperatureInDegrees = value - 273.15; }
get { return temperatureInDegrees + 273.15; }
}
}
Властивості
Використання реалізованих
властивостей:
Weather weather = new Weather();
weather.TemperatureDegrees = 11;
Console.WriteLine("Градуси: {0}",
weather.TemperatureDegrees);
Console.WriteLine("Кельвiни: {0}",
weather.TemperatureKevlin);
Console.WriteLine("Фарингейти: {0}",
weather.TemperatureFahrenheit);
Деструктори класу
Деструктор – спеціальний метод, який
автоматично викликається при знищенні
об’єкта.
Деструктор оголошується як метод, що:
1. Має ім’я «~Клас».
2. Нічого не приймає.
3. Нічого не повертає (навіть void).
4. Не має модифікатору доступу.
Деструктори класу

Деструктор
класу
Створення
бібліотеки класів
(демонстрація)
Створюємо рішення з проектом
типу «Библиотека классов»
Перейменовуємо файл Class1.cs
на файл з ім’ям класу
Для кожного класу має бути
окремий файл з відповідним ім’ям
Написавши код класів, можна
створювати проекти, де ці класи
будуть використовуватися
Натискаємо праву клавішу миші
на «Ссылки» і вибираємо
«Добавить ссылку»
Вибираємо блок «Проекти», далі
блок «Решение». У ньому
знаходимо проект бібліотеки
класів і ставимо прапорець
Підключивши простір імен за
допомогою using можемо
використовувати класи
бібліотеки
Для опрацювання
вдома:
1) https://metanit.com/sharp/tutorial/3.4.php
2) https://professorweb.ru/my/csharp/charp_theory/level5/5_6.php
3) https://professorweb.ru/my/csharp/charp_theory/level5/5_7.php
4) https://professorweb.ru/my/csharp/charp_theory/level5/5_14.php
5) https://professorweb.ru/my/csharp/charp_theory/level5/5_15.php
6) https://metanit.com/sharp/tutorial/3.29.php

You might also like