- •Программа курса
- •Ооп. Основные понятия
- •Конструкторы, деструкторы и др. Работа с объектами в .Net
- •Ссылочные типы и Типы значения. Передача параметров в .Net
- •Принципы ооп
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Важные классы (типы данных)
- •Обобщенные контейнеры
- •Статические методы и свойства
- •Обработка исключений
- •Интерфейсы и слабая связь между классами
- •Рефлексия и создание объектов из внешних модулей по имени класса
Стр.
Содержание
Программа курса 1
ООП. Основные понятия 2
Конструкторы, деструкторы и др. Работа с объектами в .Net 3
Ссылочные типы и Типы значения. Передача параметров в .Net 5
Принципы ООП 7
Инкапсуляция 7
Наследование 7
Полиморфизм 8
Важные классы (типы данных) 10
Обобщенные контейнеры 11
Статические методы и свойства 11
Обработка исключений 12
Интерфейсы и слабая связь между классами 13
Рефлексия и создание объектов из внешних модулей по имени класса 14
Программа курса
+Основные понятия ООП. (Классы, объекты, методы, поля, свойства).
Преимущества ООП в проектировании.
+Синтаксис объявлений классов в C#. Пространства имен.
+Конструкторы и деструкторы.
+Создание объектов. Ссылки. Особенности .Net и время жизни объектов (CLR, сборщик мусора). Преимущества.
+Основные принципы ООП.
+Инкапсуляция. Двойственное понимание.
+Инкапсуляция - поля, свойства и методы доступа.
+Наследование. Повторное использование кода.
Полиморфизм. Шаблонный полиморфизм.
+ Полиморфизм. Виртуальные методы.
Наследование и полиморфизм - Обобщенное программирование.
+Важные типы данных. DateTime, TimeSpan.
+Обобщенные контейнеры в .Net. Свойства и назначения контейнеров. Метод Contains для всех контейнеров кроме Dictionary. В Dictionary ContainsKey и ContainsValue. Оператора foreach и Enumerator.
+Обобщенные списки и их свойства (List, Queue, Stack и LinkedList).
+Ассоциативные массивы (словари) и множества и их свойства (Dictionry, HashSet).
+Работа со строками в .Net.
+Типы значения и типы ссылки. Числовые, булевские, char, enum и struct.
+Передача параметров в .Net.
+Статические методы и данные.
+Обработка исключений.
+Интерфейсы. Слабая связь между классами.
+Рефлексия и создание объектов из внешних модулей по имени класса.
Ооп. Основные понятия
(тип данных, абстрагирование и абстракция, класс, объект, метод, поле и свойство, состояние и поведение объектов)
Объектно-ориентированное программирование (ООП) фактическим стало стандартом технологии программирования. Этот подход подразумевает, что разработчики:
предварительно анализируют предметную область создаваемой информационной системы
выделяют ключевые и вспомогательные абстракции (понятия) и
разрабатывают классы, соответствующие сформированным абстракциям
далее само приложение разрабатывается в терминах создания и взаимодействия объектов ранее разработанных классов.
В отличие от примитивных типов данных, таких как числа, символы и их массивы, класс описывает не только данные объекта, но и методы работы с ними. Данные объекта описываются полями данных, а средства работы с объектами – функциями членами классов или методами.
Проиллюстрируем эти положения на примере. Пусть мы создаем информационную систему для отдела кадров фирмы. Тогда естественно создать класс Company. Компания имеет название, и много других подобных атрибутов, связанных с учредительными документами. Но с точки зрения отдела кадров важны такие функции, как ‘Принять нового сотрудника’, ‘Уволить сотрудника’, ‘Перевести на другую должность’.
На языке C# это примерно выглядело бы так:
public class Company
{
String Name; // Название компании
List<Person> Staff; // Хранилище для сотрудников компании
…
public bool HireNewMember(Person p, DateTime since, Position position);
public bool AppointToPosition (Person p, DateTime since, Position newPosition);
public bool DischargeMember(Person p);
…
}
Фрагмент 1. Пример объявления класса.
В верхней части объявления класса указаны 2 поля. Поля будут содержать данные конкретного объекта (конкретной компании). Они выглядят как объявление переменных.
Далее указаны 3 метода – принять, перевести и уволить. Они дают средства работы с персоналом компании и выглядят как функции, т.е. после имени в круглых скобках идет список параметров.
Для создания объекта Компания в тексте необходимо указать:
Company c = new Company();
Фрагмент 2. Пример создания объекта. После слова new стоит вызов конструктора.
Здесь ‘с’ – это переменная соответствующая объекту конкретной компании. Говорят, что это объект или экземпляр класса Company. Теперь, что бы принять сотрудника в эту компанию нужно у объекта ‘c’ вызвать метод HireNewMember.
c.HireNewMember(p, date, position);
Фрагмент 3. Пример вызова метода объекта.
где p – объект соответствующий конкретной персоне, date – дата, с которой сотрудник принимается на работу, а position – объект, указывающий должность, на которую принимается сотрудник.
Хороший стиль программирования требует не давать прямого доступа пользователям класса к полям данных, а ‘заворачивать’ поля в свойства. На рассмотренном выше примере объявление свойств выглядит так
public class Company
{
String name; // Поле
public String Name { // Соответствующее свойство
get { return name;}
set {if(value != ””) name = value;}
} …
Фрагмент 4. Пример объявления свойства.
Здесь показано, что любое чтение и изменение свойства осуществляется ‘под контролем’ разработчика класса. В частности, здесь нельзя задать имя компании пустым.
Говорят так же, что множество полей данных и свойств объекта определяет его состояние, а совокупность методов объекта – его поведение.
Упражнение для подготовки к экзамену.
Предложите другую не сложную информационную систему, выделите в ней абстракции, которые соответствуют предметной области, и перечислите набор свойств и методов, характеризующих эти абстракции. Изложите ваши результаты, используя термины Состояние объекта и Поведение объекта.