Учебный курс Объектно-ориентированный анализ и программирование Лекция 5 Система типов Лекции читает кандидат технических наук Курак Михаил Валерьянович 2 3 4 5 6 7 Предопределенные и определяемые типы Object Встроенные типы Библиотечные типы Типы, определяемые разработчиком Типы, определяемые разработчиком Типы, определяемые разработчиком 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Предопределенные и определяемые типы Object Встроенные типы Библиотечные типы Типы, определяемые разработчиком Типы, определяемые разработчиком Типы, определяемые разработчиком 24 Встроенные типы (1) 25 Встроенные типы (2) 26 Пример программы (1) using System; public class Телефон { public static string марка; } public class МойТелефон : Телефон { public int номер; public void Показать(string сообщение) { Console.WriteLine(сообщение + марка + " " + номер); } } class Пользователь { static void Main(string[] args) { int мойНомер = 1554177; МойТелефон тел; тел = new МойТелефон(); МойТелефон.марка = "Panasonic"; тел.номер = мойНомер; тел.Показать(“Это номер ”); } } Поле Локальная переменная Константа 27 Переменные Переменная – объект, который может изменять свое значение в процессе выполнения программы Определяются явно в объявлении переменной ТИП int цена; ИМЯ = ИНИЦИАЛИЗАТОР Не обязателен -поля: по умолчанию -локальные переменные: “мусор” double курс = 25.5; Поле объекта Создается – при создании объекта Уничтожается – при уничтожении объекта Локальная переменная метода Создается – при каждом входе в метод Уничтожается – при выходе из метода Следствие: Любое выражение, которое можно вычислить на момент выполнения объявления 28 Пример программы (1) using System; public class Телефон { public static string марка; } public class МойТелефон : Телефон { public int номер; public void Показать(string сообщение) { Console.WriteLine(сообщение + марка + " " + номер); } } class Пользователь { static void Main(string[] args) { int мойНомер = 1554177; МойТелефон тел; тел = new МойТелефон(); МойТелефон.марка = "Panasonic"; тел.номер = мойНомер; тел.Показать(“Это номер ”); } } Поле Локальная переменная Константа 29 Литералы Константа - объект, который не изменяет своего значения в процессе выполнения программы ТИП ЗНАЧЕНИЕ Определяются по форме записи литерала 387 Целый литерал со значением 387 2.5 Вещественный литерал со значением 2.5 0.25E1 Вещественный литерал со значением 2.5 ‘Ф’ Символьный литерал, соответствующий коду буквы Ф “БЕНДЕР” Строковый литерал true Логический литерал, соответствующий истинному значению Создаются – при запуске программы Уничтожаются – при завершении программы 30 Целые со знаком int long Целые без знака uint ulong Вещественные double 35U - типа uint 2.5F - типа float 35L - типа long 2.5M - типа decimal 31 Именованные константы Определяются явно в объявлении константы ТИП ИМЯ = ИНИЦИАЛИЗАТОР const int цена = 555; Целая константа сonst double курс = 25.5; Вещественная константа const char буква = ‘Ф’; Символьная константа сonst string фамилия = “БЕНДЕР” Строковая константа const bool признак = true; Логическая константа Создаются – при запуске программы Следствие: Константа или константное выражение Уничтожаются – при завершении программы 32 Переменные Переменная – объект, который может изменять свое значение в процессе выполнения программы Определяются явно в объявлении переменной ТИП int цена; ИМЯ = ИНИЦИАЛИЗАТОР Не обязателен -поля: по умолчанию -локальные переменные: “мусор” double курс = 25.5; Поле объекта Создается – при создании объекта Уничтожается – при уничтожении объекта Локальная переменная метода Создается – при каждом входе в метод Уничтожается – при выходе из метода Следствие: Любое выражение, которое можно вычислить на момент выполнения объявления 33 34 35 36 Автоматическое преобразование типа источника к типу приемника 37 Ссылка типа object Адрес Объект – ссылка Объект – значение (например, типа int) Упаковать Адрес Копия 38