Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры информатика 2 сем.doc
Скачиваний:
18
Добавлен:
24.09.2019
Размер:
430.08 Кб
Скачать

Основные принципы ооп

В основу ООП положено понятие объекта. Объект – данные и операции, их обрабатывающие, любого уровня сложности. В ООП наибольшее внимание уделяется не реализации объектов, а связям между ними. Эти связи организованы в виде сложных иерархических структур, где новые типы объектов создаются на основе имеющихся.

ООП базируется на трех основных принципах: инкапсуляция, наследование, полиморфизм.

Инкапсуляция – сокрытие информации. Этот принцип предполагает создание пользовательских типов данных, включающих как данные, так и операции и функции их обрабатывающие. Никакие другие данные не могут использовать эти операции и функции и наоборот. Контроль над санкционированным использованием данных и функций выполняет компилятор. Такие данные называются абстрактными в отличие от стандартных типов данных. Механизм создания абстрактных типов данных осуществляется через понятие класса.

Наследование – создание иерархии абстрактных типов данных. Определяется базовый класс, содержащий общие характеристики (прародительский класс), а из него по правилам наследования строятся порожденные классы, сохраняющие свойства и методы базового класса и дополненные своими характерными свойствами и методами.

Полиморфизм – множественность форм. Это принцип использования одинаковых имен функций и знаков операций для обозначения однотипных действий. В языке c# полиморфизм используется в двух видах: перегрузка функций и операций, виртуальные функции.

Пространство имен

Пространства имен позволяют определить родственные типы (классы) в логические группы. Например, в пространстве имен System.Text описаны типы только для обработки строк, а в пространстве System.IO – типы для выполнения операций ввода и вывода. Нужное пространство имен можно подключить, как библиотеку, используя директиву using.

Пространство System

Основным подключаемым пространством имен является пространство System, содержащее как классы, так и другие вложенные пространства имен. Так тип Int32 непосредственно вложен в пространство имен System и его полное имя, включающее имя пространства System.Int32. В пространство System вложен целый ряд других пространств имен. Например, пр-во System.Windows.Forms содержит классы, используемые при создании Windows-приложений. Класс Form из этого пространства создает форму-окно, заполняемое элементами управления, графикой, обеспечивающие интерактивное взаимодействие с пользователем.

Классификация типов в C#

1.Значимые типы (value) 2.Ссылочные (reference) 3.Указатели (pointer) 4. Тип void.

Эта классификация основана на том, где и как хранятся значения типов.

Для ссылочного типа значение задает ссылку на область памяти, где расположен соответствующий объект. Для значимого типа используется прямая адресация, значение хранит собственно данные, и память для них, как правило, отводится в стеке. К значимым типам относятся: логический, арифметический, структуры, перечисления. К ссылочным: массивы, строки, классы.

Передача параметра по ссылке

Обычно, при передаче параметров в функцию передается копия данного объекта, но бывает ситуация, когда необходимо передать сам объект. При передаче по ссылке внутри метода меняется не копия объекта, а сам объект. Передача параметра по ссылке происходит через ключевое слово ref.

Указатели

При объявлении нескольких указателей в одном объявлении знак * записывается только с низ лежащим типом, а не в качестве префикса с каждым указателем. Пример, int p1,p2,p3. Значением переменной типа myType* является адрес переменной типа myType.

Константы Константа – идентификатор, значение которого не меняется в ходе выполнения программы. Константы можно определять только для элементарных типов. В C# следующие типы являются элементарными: Boolean, Char, Byte, SByte, Intl6, UIntl6, Int32, UInt32, Int64, UInt64, Single, Double, Decimal и String.

Доступ к полям класса Каждое поле имеет модификатор доступа, принимающее одно из четырех значений: public, private, protected, internal. Атрибутом доступа по умолчанию является атрибут доступа private. Независимо от значения атрибута доступа все поя класса доступны для всех методов класса. Если поля имеют доступ только для методов класса, то они имеют атрибут доступа private. Такие поля считаются закрытыми. Если некоторые поля класса A должны быть доступны классу B, являющегося потомком класса A, то такие поля будут иметь атрибут доступа protected и называться защищенными. Если некоторые поля класса A должны быть доступны для методов классов B1, B2 и т.д., дружественных по отношению к А, то эти поля следует снабдить атрибутом internal, а все дружественные классы В поместить в один проект. Такие поля называются дружественными. Если некоторые поля А должны быть доступны для методов любого класса B, которому доступен сам класс A, то эти поля следует снабдить атрибутом public. Такие поля называются общедоступными или открытыми.

Доступ к методам класса Атрибутом доступа по умолчанию является атрибут private. Независимо от значения атрибута доступа, все методы доступны для вызова при выполнении метода класса. Если методы имеют атрибут доступа private, они доступны только для вызова внутри методов самого класса. Такие методы считаются закрытыми. Если некоторые методы класса A должны быть доступны для вызовов в методах класса B, являющегося потомком класса A, то такие методы следует снабдить атрибутом protected. Если некоторые методы должны быть доступны только для методов классов B1, B2 и так далее, дружественных по отношению к классу A, то такие методы следует снабдить атрибутом internal, а все дружественные классы B поместить в один проект. Если некоторые методы должны быть доступны для методов любого класса B, которому доступен сам класс A, то такие методы снабжаются модификатором public.