- •3.Понятие инкапсуляция
- •4.Понятие полиморфизм.
- •5.Платформа .NetFramework
- •6.Преимущества .NetFramework
- •8. Компоненты .Net Framework
- •9.Обзор с#
- •10.Структура программы на c#
- •11.Система типов языка с#
- •12.Использование встроенных типов данных
- •15. Операторы выбора
- •17. Обработка исключений
- •19. Перегрузка методов.
- •18. Использование методов. Использование свойств.
- •21. Особенности конструктора
- •22.Использование инкапсуляции.
- •23. Инициализация данных.
- •24.Насле́дование
- •25. Синтаксис обьявления Метода
- •26. Спецификаторы метода.
- •31.Интерфейс.
- •32. Стандартные интерфейсы .Net.
- •33. Пространство имен.System.Collections
- •34. Принципы ооп в с#. Наследование
- •35. Принципы ооп в с#. Полиморфизм
- •36. Принцыпы ооп в c#. Инкапусаляция.
- •37. Делегаты.
- •38. Пример использования делегатов. Функции высших порядков.
- •39. Случаи использования делегатов.
- •42. Интерфейс iDisposable.
- •43. Класс System.Gc
- •44. Унифицированный язык моделирования. Предметы вUml.
- •45.Унифицированный язык моделирования. Отношения в uml.
- •46. Диаграммы в uml
- •47. Унифицированный язык моделирования. Статические модели.
- •49.Моделирование поведения программной системы
- •50. Диаграммы схем состояний
- •52.Диаграммы Use Case
- •53. Технологии проектирования программного обеспечения
- •54.Парадигмы ткпо. Классический жизненный цикл.
- •55. Парадигмы ткпо. Макетирование.
- •56 Стратегии конструирования по. Однократный подход.
- •58. Спиральная модель разработки по.
- •59. Компонентно-ориентированная модель разработки по.
- •60. Унифицированный процесс разработки по.
- •Принципы
- •61. Создание многопоточных приложений. Класс Thread.
- •62. Понятие графического интерфейса пользователя.
- •63. Gui. Модель обработки событий.
- •64. Gui. Многодокументный интерфес.
- •65. Gui. Понятие диалогового окна.
- •67. Класс Form и его жизненный цикл.
- •72. Тестирование по. Основные понятия
- •73. Тестирование по. Тестирование «белого ящика»
- •74. Тестирование по. Тестирование «черного ящика»
- •75.Заповеди отладки.
34. Принципы ооп в с#. Наследование
35. Принципы ооп в с#. Полиморфизм
Полиморфизм — возможность с помощью одного имени обозначать операции из различных классов (но относящихся к общему суперклассу). Вызов обслуживания по полиморфному имени приводит к исполнению одной из некоторого набора операций.
36. Принцыпы ооп в c#. Инкапусаляция.
Целью инкапсуляции является обеспечение согласованности внутреннего состояния объекта. В C# для инкапсуляции используются публичные свойства и методы объекта. Переменные, за редким исключением, не должны быть публично доступными. Проиллюстрировать инкапсуляцию можно на простом примере. Допустим, нам необходимо хранить вещественное значение и его строковое представление (например, для того, чтобы не производить каждый раз конвертацию в случае частого использования). Пример реализации без инкапсуляции таков: class NoEncapsulation
{ public double Value;
public string ValueString; }
При этом мы можем отдельно изменять как само значение Value, так и его строковое представление, и в некоторый момент может возникнуть их несоответствие (например, в результате исключения). Пример реализации с использованием инкапсуляции:
class EncapsulationExample
{
private double valueDouble;
private string valueString;
public double Value
{
get { return valueDouble; }
set
{
valueDouble = value;
valueString = value.ToString();
} }
public string ValueString
{ get { return valueString; }
set {double tmp_value = Convert.ToDouble(value); valueDouble = tmp_value;
valueString = value;
} } }
Здесь доступ к переменным valueDouble и valueString возможен только через свойства Value и ValueString. Если мы попытаемся присвоить свойству ValueString некорректную строку и возникнет исключение в момент конвертации, то внутренние переменные останутся в прежнем, согласованном состоянии, поскольку исключение вызывает выход из процедуры.
37. Делегаты.
Делегат — это вид класса, предназначенный для хранения ссылок на методы. Делегат, как и любой другой класс, можно передать в качестве параметра, а затем вызвать инкапсулированный в нем метод. Делегаты используются для поддержки событий, а также как самостоятельная конструкция языка. Рассмотрим сначала второй случай. Описание делегата задает сигнатуру методов, которые могут быть вызваны с его помощью: [ атрибуты ] [ спецификаторы ] delegate тип имяделегата ( [ параметры ] )
Спецификаторы делегата имеют тот же смысл, что и для класса, причем допуска ются только спецификаторы new, public, protected, internal и private. Тип описывает возвращаемое значение методов, вызываемых с помощью делегата, а необязательными параметрами делегата являются параметры этих методов. Делегат может хранить ссылки на несколько методов и вызывать их поочередно естественно, что сигнатуры всех методов должны совпадать.
Пример описания делегата: public delegate void D ( int i );
Здесь описан тип делегата, который может хранить ссылки на методы, возвращающие void и принимающие один параметр целого типа. Объявление делегата можно размещать непосредственно в пространстве именили внутри класса.