Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры_ООП.docx
Скачиваний:
5
Добавлен:
18.09.2019
Размер:
114.62 Кб
Скачать

12. ФункцИи-члены и даННые-члены

Функции-члены  – это функции, которые манипулируют данными-членами класса.

Функции-члены имеют доступ ко всем полям своего класса.

Функции-члены могут быть в закрытой, защищенной и открытой части класса.

Функции-члены могут быть определены внутри или вне объявления класса. Функции-члены, определенные вне класса, могут быть сделаны inline.

Функции-члены могут обращаться к полям или функциям-членам, объявленным после них.

Функции-члены имеют неявно объявленную переменную this.

Функции-члены могут быть static. Такие функции могут непосредственно обращаться и изменять статические поля класса.

Функции-члены могут быть объявлены как const, что не позволяет им изменять значение и возвращать неконстантную ссылку или указатель на любое поле класса. Такие функции-члены не могут быть статическими.

13. Интерфейсы и реализация

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

Описание ООП-интерфейса состоит из двух частей: имени и методов интерфейса.

Имя интерфейса, которое строится по тем же правилам, что и другие идентификаторы используемого языка программирования.

Методы интерфейса. В описании интерфейса определяются имена и сигнатуры входящих в него методов, то есть процедур или функций класса.

Каждый класс может реализовывать любые доступные интерфейсы. При этом в классе должны быть реализованы все абстрактные методы, появившиеся при наследовании от интерфейсов или родительского класса, чтобы новый класс мог быть объявлен неабстрактным.

Идеальный интерфейс должен

- представлять полное и согласованное множество понятий для пользователя,

- быть согласованным для всех частей компонента,

- допускать несколько реализаций,

- иметь статическую систему типов,

- зависеть от других интерфейсов лишь частично и вполне определенным образом.

14. Конструкторы и инициализация

Одно из величайших преимуществ языков ООП состоит в том, что вы можете определять специальные методы, вызываемые всякий раз при создании экземпляра класса. Эти методы называются конструкторами (constructors). Констукторы отличаются от прочих компонентов функций тем, что имеют то же самое имя, что и класс, к которому они относятся. При создании или копировании объекта данного класса происходит неявный вызов соответствующего конструктора. Гарантия инициализации объекта должным образом, прежде чем он будет использован,— ключевая выгода от конструктора. Вот простой класс с таким же простым конструктором: 

using System;  class ConstructorApp  {    ConstructorApp()      {         Console.WriteLine("Конструктор");     }      public static void Main()      {         ConstructorApp App = new ConstructorApp();     }  } 

Инициализация класса. Объект класса с компонентами только public и без конструкторов или базовых классов (обычно это структура) может быть инициализирован при помощи списка инициализаторов. При наличии конструктора класса объекты либо инициализируются, либо имеют конструктор по умолчанию. Последний используется в случае объектов без явной инициализации.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]