- •Основные понятия и принципы ооп
- •Абстракция:
- •Инкапсуляция:
- •Аспекты платформы .Net Framework
- •Эволюция и основные возможности c#
- •Структура программы и синтаксис конструкций c#
- •Понятие семантики в математике и программировании
- •Теория вычислений д.Скотта. Семантика c#
- •Понятие класса и объекта. Концептуальная модель
- •Классы, поля, методы в c#
- •Определение типов. Классификация систем типизации
- •Система типов cts. Базисные типы
- •Пространство имен. Преобразование типов
- •Наследование в ооп
- •Базовые и производные классы в c#
- •Понятие инкапсуляции в математике и программировании. Описание и применение инкапсуляции в c#
- •Виды области видимости. Рекомендации
- •Понятие полиморфизма
- •Интерфейсы, их связь с абстрактными классами. Реализация
- •Понятие события в математике и программировании. Моделирование событий
- •Делегаты. События как особый вид делегатов
- •Исключения и их обработка в c#
- •Графический интерфейс Windows Forms. Программные компоненты и модель
- •Основные классы. Иерархия классов. Основные контролы
- •Создание пользовательских компонентов
Классы, поля, методы в c#
Класс в С# - это пользовательский тип данных, который состоит из данных (часто называемых атрибутами или свойствами) и функциями для выполнения с этими данными различных действий (эти функции обычно называются методами). Классы позволяют группировать в единое целое данные и функциональность, моделируя объекты реального мира. Именно это свойство классов и обеспечивает одно из наиболее важных преимуществ объектно-ориентированных языков программирования.
Статическое поле класса— это такое поле, которое существует в оперативной памяти компьютера в единственном экземпляре, сколько бы объектов класса ни создавалось. Наиболее очевидное применение таких полей — подсчет общего количества созданных объектов класса.
Метод представляет собой блок кода, содержащий инструкцию для совершения некий действий над объектом. Статическим называется метод, который существует в классе как таковом, а не в отдельных его экземплярах. Они расположены вне конкретных экземпляров класса и не засоряют глобальное пространство приложения.
Наследование классов – это способность одного класса использовать свойства и методы, объявленные в другом классе. Класс, предоставляющий свои свойства и методы, называется базовым (или родительским), а класс, наследующий их – дочерним.
Преимущества ООП: 1)Сокращение количества межмодульных вызовов. 2)Уменьшение объема информации, передаваемой между модулями. 3)Возможность вести независимую разработку объектов программы.
Недостатки: Некоторое снижение быстродействия за счет более сложной организации программной системы
Определение типов. Классификация систем типизации
Система типов cts. Базисные типы
CTS (common type system) общая система типов
Функции:
Описывает типы данных и операции
Совместимость типов в разных ЯП
Имеет объектно – ориентированную направленность
Категории данных:
Значимые типы
Ссылочные типы
Управление типами в CTS:
Типы могут быть исполнены после инициализации
Над типами 2 рода преобр-й (явные/неявные)
Типы объединяются в совокупности (пространство имён, файлы, сборки)
Ссылочные типы
Типы значения
Упаковка(boxing)- приведения значимого типа к ссылочному
Обнуляемые типы:
Поддержка null – значений для значимых типов
Стандартизация подхода к задаче
Работа только с value Type типами
Чтобы определить переменную, которая может принимать ещё и null значение
Пространство имен. Преобразование типов
Пространство имён:
Много общего с пространством имен в с++ и пакетами в java
Выполняют логическую группировку
Могут содержать в себе классы, структуры, интерфейсы и др. пространства имен
не могут содержать методов и данных
Позв. описывать типы с одинаковыми именами (в различных пространствах)
Могут располагать в одном или нескольких различных файлов
Используются через директиву using
можно и без using, но с полным именем
Пространства имен (namespace) и ссылки
Для проекта могут быть указаны ссылки
Каждая ссылка идентифицирует универсальную сборку
Передается c# компилятору по ссылке
пространства имён дают возможность сохранять именования на уровне ЯП
ссылки указывают на сборку для использования в проекте
Преимущества типизации на .NET:
платформа использует CTS
строгое соответствие между примитивными типами ЯП и базовыми классами
явное разделение на ссылочные и значимые типы
гибкий и надёжный механизм преобразования типов значений в ссылочные и обратно (boxing & unboxing)
Явные(explicit):
Когда преобразование к другому типу напрямую несовместимо
Требуют вызова, могут приводить к потере точности
Checked-проверка
long- int, ...
Неявные(implicit):
Когда безопасно
Автоматически, всегда успешно
int- long, float- double, long- float
Оператор перечисления:
Список поименованных констант
Описываются словом enum
Встроено представляется типом INT? Но может быть и другим типом
Сильно типизирован
Тип System.Object базовый класс для всех типов .net , при описании типа по умолчанию наследник System.Object
Важные методы:
equals()- сравн. объекты
ToString()- предст. объекта как строки
GetHashCode()- выч. хеш-кода
Finalize()- уничтожение
GetType()- возвращение метаданных
MemberwiseClone()- кодирует бинарные представления в новую переменную
ReferenceEquals()- сравн. 2 объекта по ссылке
Клонирование объектов:
Создаёт идентичные копии
Копируется значение всех полей
Типы, которые позволяют клонирование
Clone() копирует рекурсивно все поля
Упаковка значимых типов (преобразование значимых типов в ссылочные и наоборот) Boxing-UnBoxing.