
- •Лекции по курсу "Технология программирования" (1-й семестр) Оглавление
- •Технология .Net Предыдущее состояние дел.
- •Главные компоненты платформы .Net (clr, cts и cls)
- •Общеязыковая среда выполнения (clr)
- •О бщая система типов и общеязыковые спецификации (cts и cls)
- •Библиотека базовых классов
- •Роль языка с#
- •Компоновочные блоки
- •Роль метаданных типов .Net
- •Роль манифеста компоновочного блока
- •Общая система типов.
- •Объектно-ориентированное программирование
- •Главные элементы объектно-ориентированного подхода
- •Дополнительные элементы ооп
- •Принципы объектно-ориентированного программирования.
- •Классы Инкапсуляция
- •Объект (экземпляр класса).
- •Ключевое слово this
- •Отношения между объектами.
- •Основные отличительные особенности класса
- •Спецификаторы доступа
- •Состав класса
- •Поля класса
- •Доступ к полям
- •Статические и экземплярные переменные
- •Методы (функции-члены класса)
- •Переменное число параметров метода
- •Статические методы
- •Конструкторы
- •Закрытые конструкторы или классы без экземпляров
- •Статические конструкторы.
- •Деструкторы
- •Абстрактные методы и классы.
- •Свойства
- •Индексаторы
- •Статические классы
- •Частичные классы
- •Рекомендации по программированию
- •Наследование Понятие наследования в программировании
- •Типы наследования
- •Наследование реализации
- •Определение наследующих классов
- •Уровень доступа protected и internal
- •Ссылка на объект базового класса
- •Протоклассы
- •Предотвращение наследования с помощью ключевого слова sealed.
- •Отношения между классами
- •Абстрактные классы.
- •Класс object
- •Функциональные замыкания
- •Разработка функциональных замыканий с помощью наследования
- •Разработка функциональных замыканий с помощью экземпляров класса
- •Заключение.
- •Полиморфизм
- •Полиморфизм наследующих классов.
- •Переопределение методов родительского класса. Раннее связывание.
- •Виртуальные методы и их переопределение.
- •Как вызывают виртуальные методы
- •Виртуальные функции и принцип полиморфизма
- •Перегрузка.
- •Перегруженные конструкторы
- •Рекомендации программисту.
Лекции по курсу "Технология программирования" (1-й семестр) Оглавление
1 |
Технология.Net |
2 |
||
|
1.1 |
Предыдущее состояние дел |
2 |
|
|
1.2 |
Решение технологии .NET |
3 |
|
|
1.3 |
Главные компоненты платформы .NET |
4 |
|
|
1.4 |
Общеязыковая среда выполнения |
4 |
|
|
1.5 |
Общая система типов и общеязыковые спецификации |
6 |
|
|
1.6 |
Библиотека базовых классов |
6 |
|
|
1.7 |
Роль языка С# |
7 |
|
|
1.8 |
Компоновочные блоки |
8 |
|
|
1.9 |
Роль метаданных типов .NET |
9 |
|
|
1.10 |
Роль манифеста компоновочного блока |
9 |
|
|
1.11 |
Общая система типов |
9 |
|
2 |
Объектно-ориентированное программирование |
10 |
||
|
2.1 |
Главные элементы объектно-ориентированного подхода |
10 |
|
|
2.2 |
Дополнительные элементы ООП |
11 |
|
|
2.3 |
Принципы объектно-ориентированного программирования |
12 |
|
3 |
Классы |
13 |
||
|
3.1 |
Объект (экземпляр класса) |
13 |
|
|
|
3.1.1 |
Ключевое слово "this" |
15 |
|
|
3.1.2 |
Отношения между объектами |
15 |
|
|
3.1.3 |
Основные отличительные особенности класса |
15 |
|
3.2 |
Инкапсуляция в классе |
16 |
|
|
|
3.2.1 |
Спецификаторы доступа к классам |
17 |
|
|
3.2.2 |
Состав класса |
18 |
|
3.3 |
Поля класса |
19 |
|
|
|
3.3.1 |
Доступ к полям |
19 |
|
|
3.3.2 |
Статические и экземплярные переменные |
21 |
|
3.4 |
Методы (функции-члены класса) |
21 |
|
|
|
3.4.1 |
Переменное число параметров метода |
23 |
|
|
3.4.2 |
Статические методы |
24 |
|
|
3.4.3 |
Конструкторы |
24 |
|
|
3.4.4 |
Закрытые конструкторы или классы без экземпляров |
26 |
|
|
3.4.5 |
Статические конструкторы |
27 |
|
|
3.4.6 |
Деструкторы |
28 |
|
|
3.4.7 |
Абстрактные методы и классы |
28 |
|
3.5 |
Свойства |
28 |
|
|
3.6 |
Индексаторы |
30 |
|
|
3.7 |
Статические классы |
31 |
|
|
3.8 |
Частичные классы |
31 |
|
|
3.9 |
Рекомендации по программированию |
33 |
|
4 |
Наследование |
35 |
||
|
4.1 |
Типы наследования |
35 |
|
|
4.2 |
Наследование реализации |
36 |
|
|
|
4.3.1 |
Определение наследующих классов |
37 |
|
|
4.3.2 |
Уровень доступа protected и internal |
41 |
|
|
4.3.3 |
Ссылка на объект базового класса |
43 |
|
|
4.3.4 |
Протоклассы |
45 |
|
|
4.3.5 |
Предотвращение наследования с помощью ключевого слова sealed |
46 |
|
4.3 |
Отношения между классами |
47 |
|
|
4.4 |
Отношение вложенности |
48 |
|
|
|
4.4.1 |
Расширение понятия о владеющем классе |
49 |
|
|
4.4.2 |
Отношения между владеющими и вложенными классами |
51 |
|
|
4.4.3 |
Особенности использования владеющих и вложенных классов |
51 |
|
4.5 |
Абстрактные классы |
51 |
|
|
4.6 |
Класс object |
53 |
|
|
4.7 |
Функциональные замыкания |
54 |
|
|
|
4.7.1 |
Разработка функциональных замыканий с помощью наследования |
54 |
|
|
4.7.2 |
Разработка функциональных замыканий с помощью экземпляров класса |
55 |
|
4.8 |
Заключение |
57 |
|
|
4.9 |
Рекомендации программисту |
58 |
|
5 |
Полиморфизм |
59 |
||
|
5.1 |
Полиморфизм наследующих классов |
59 |
|
|
|
5.1.1 |
Правила приведения типов |
61 |
|
5.2 |
Переопределение методов родительского класса. Раннее связывание |
62 |
|
|
|
5.2.1 |
Недостатки переопределения методов |
64 |
|
5.3 |
Виртуальные методы и их переопределение |
65 |
|
|
|
5.3.1 |
Как вызывают виртуальные методы |
67 |
|
|
5.3.2 |
Версии виртуальных методов |
68 |
|
|
5.3.3 |
Виртуальные функции и принцип полиморфизма |
72 |
|
5.4 |
Абстрактные методы и их применение |
74 |
|
|
5.5 |
Абстрактные классы |
74 |
|
|
5.6 |
Перегрузка |
76 |
|
|
|
5.6.1 |
Почему следует использовать перегрузку |
76 |
|
|
5.6.2 |
Перегрузка методов |
77 |
|
|
5.6.3 |
Перегруженные методы |
77 |
|
|
5.6.4 |
Перегруженные конструкторы |
78 |
|
|
5.6.5 |
Рекомендации программисту |
79 |