Интерфейсы.Их основное назначение. Что означает фраза «класс А поддерживает интерфейс I»? — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Интерфейсы.Их основное назначение. Что означает фраза «класс А поддерживает интерфейс I»?

2019-08-03 367
Интерфейсы.Их основное назначение. Что означает фраза «класс А поддерживает интерфейс I»? 0.00 из 5.00 0 оценок
Заказать работу

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

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

В языке С# интерфейс – это специальный тип (interface), содержащий только абстрактные члены. Поскольку других членов в интерфейсе быть не может, то при их описании не используется слово abstract, поскольку интерфейс определяет только общедоступные члены, то при их описании не указывается уровень доступа.

Пример.

interface I {

int Sq ();}

 

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

с lass A:I{

public int Sq(){return 6;} }

 

Замечание. Вместо фразы «класс А наследует интерфейс I» говорят «класс А реализует интерфейс I» или «класс А поддерживает интерфейс I».

Класс может поддерживать несколько интерфейсов.

 

Интерфейсы, ссылки на интерфейсы.

Ссылки на интерфейс - это ссылки на объекты классов, поддерживающих данный интерфейс. Если объявлена ссылка на интерфейс I, (I b;), а А – класс поддерживающий интерфейс I, то можно написать

 b=new A(); и работать с вновь созданным объектом класса А, через ссылку b.

Если с объектом класса мы работаем через ссылку на интерфейс, то в этом случае будут доступны только члены, описанные в интерфейсе.

Ссылки на интерфейс могут быть формальными параметрами методов и могут возвращаться методами.

 

Оформление абстрактных методов в абстрактном классе и в интерфейсе. Примеры.

Абстрактные методы оформляются специальным образом. Во первых при их описании используется служебное слово abstract, а во вторых вместо тела метода ставится точка с запятой.

Пример.

abstract class Q{

public int x;

public int getX(){return x;}

abstract public string fun();}

 

Абстрактные методы не могут содержаться в обычных классах. Если обычный класс является производным от абстрактного класса, то в нем все абстрактные методы должны быть определены с использованием служебного слова override.

class D:Q{

                   override public string fun(){return “ Класс D”;}}

 

В интерфейсе слово abstract перед методом не пишется.

interface Figura{

                   //int x, y;

void draw ();

 

Теория ООП: инкапсуляция.

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

Это объектно-ориентированная характеристика модульности. С помощью инкапсуляции программа разделяется на объекты, выполняющие отдельные функции, детали которых скрыты от внешнего мира.

Инкапсуляция позволяет создавать объекты подобные черному ящику (Рисунок 4)

Рисунок 4. Интерфейс

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

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

Какие программные средства позволяют реализовать инкапсуляцию? Уровни доступа. Интерфейс образуют общедоступные члены.

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

Инкапсуляция делает программу более гибкой, так как соседние объекты не обязаны учитывать реализацию друг друга. Хорошо инкапсулированный объект легко использовать в других программах, т.е. повышается повторное использование кода.

Сокрытие реализации объекта способствует написанию слабо связанного программного кода. Слабосвязанный программный код – это код, в котором объекты довольно независимы друг от друга.

 

Полностью зависимость между объектами ликвидировать нельзя, поскольку ОО программа – это совокупность взаимодействующих объектов, но связанность не должна приводить к сращиванию объектов.

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

В сильно связанном программном коде затруднено рассмотрение каждого объекта в отдельности.

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

Итак, для правильной инкапсуляции необходимо хорошо продумать структуру объекта, добиться того, чтобы все элементы объекта были логически связаны и нацелены на решение основной задачи.

Достоинства инкапсуляции

1.Повторное использование кода.

2.Возможность изменения реализации объекта. Изменения локализуются в объекте, а не превращаются в лавинный поток.

3.Защита от деструктивного использования.

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

 


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.