ProgBasics_lec07_polymorphism
.pdfмодификатор new
public class A
{
public void Do()
{
Console.WriteLine("A");
}
}
public class B : A
{
public new void Do()
{
Console.WriteLine("B");
}
}
new
A a = new A(); a.Do();
a = new B(); a.Do();
B b = new B(); b.Do();
A
A
B
static-классы
•не могут содержать операторы
•не могут быть помечены как selaed, abstract
•могут содержать ТОЛЬКО static-элементы
•нельзя создавать экземпляры
На самом деле, static-класс – это
абстрактный, sealed-класс на уровне среды выполнения.
Класс Convert
public static class Convert {
public static byte ToByte(char value); public static char ToChar(bool value); public static decimal ToDecimal(byte value); public static double ToDouble(long value); public static short ToInt16(char value); public static long ToInt64(sbyte value);
}
Метеорологическая станция
Требования к системе:
•Мониторинг параметров среды
–скорость и направление ветра
–температура
–барометрическое давление
–влажность воздуха
•Вычисление производных параметров
–коэффициент резкости погоды
–точка росы
–относительное изменение температуры
–относительное изменение барометрического давления
Возможности системы
•Постоянный вывод всех параметров
•Вывод максимального и минимального значения любого параметра за 24 часа
•Осуществление калибровки датчиков, установку даты и времени
Предположим, что ООП нет
<пример кода в Visual Studio>
Объектная модель
Датчик
направления
ветра
Датчик |
|
Датчик |
|
||
температуры |
|
влажности |
Компьютер
оператора
Датчик |
Датчик |
|
скорости |
||
давления |
||
ветра |
||
|
Определяем объекты системы
•Датчик температуры
–Ответственность:
•Предоставление информации о текущей температуре
–Операции:
•Получение температуры
•Калибровка (установка max и min значений температуры)
–Атрибуты:
•Температура
Определяем объекты системы
•Датчик давления
–Ответственность:
•Предоставление информации о текущем давлении
–Операции:
•Получение текущего барометрического давления
•Калибровка (установка max и min значений давления)
–Атрибуты:
•Давление