Главная страница
Навигация по странице:

  • Способы передачи параметров

  • Текст, макроподстановка

  • ИГА. Понятие базы данных


    Скачать 0.77 Mb.
    НазваниеПонятие базы данных
    Дата05.04.2022
    Размер0.77 Mb.
    Формат файлаdocx
    Имя файлаИГА.docx
    ТипДокументы
    #445246
    страница20 из 37
    1   ...   16   17   18   19   20   21   22   23   ...   37

    Структура класса и синтаксис декларации класса.


    Каждый класс имеет свои члены. В зависимости от языка программирования члены класса могут быть различных типов. Класс может содержать поля (свойства) и методы (функции). Класс в итоге определяется как список своих членов [10].

    На рис. 3 приведен пример создания класса, у которого есть несколько методов, включая конструктор и деструктор, и одно поле «sum».


    Доступ к членам класса. Закрытые и открытые члены класса.


    Существует оператор прямого доступа (.)

    Vaska.Weight =5;
    Vaska.Meow();

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

    Принцип инкапсуляции.


    Инкапсуляция в контексте методологии объектно-ориентированного программирования – это свойство системы, позволяющее объединить данные и работающие с ними в классе методы и скрыть детали реализации от пользователя. Таким образом, инкапсуляция представляет механизм ограничения доступа к определенным компонентам класса [12].

    Сокрытие реализации позволяет достичь следующих целей:

    • Предельной локализации изменений

    • Прогнозируемости изменений (какие модификации в коде нужно сделать для необходимого изменения функциональности) и прогнозируемости последствий изменений

    У языка C++ имеется три спецификатора доступа:

    • Public – видимый любым другим классом

    • Protected – видимый производными классами

    • Private – отсутствие видимости в том числе производным классам


    Методы в ООП. Способы передачи параметров.


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

    Классы могут наследоваться друг от друга. Класс-потомок получает все поля и методы класса-родителя, но может дополнять их собственными либо переопределять уже имеющиеся. Большинство языков программирования поддерживает только единичное наследование (класс может иметь только один класс-родитель), лишь в некоторых допускается множественное наследование — порождение класса от двух или более классов-родителей. Множественное наследование создаёт целый ряд проблем, как логических, так и чисто реализационных, поэтому в полном объёме его поддержка не распространена. Вместо этого в 1990-е годы появилось и стало активно вводиться в объектно-ориентированные языки понятие интерфейса. Интерфейс — это класс без полей и без реализации, включающий только заголовки методов. Если некий класс наследует (или, как говорят, реализует) интерфейс, он должен реализовать все входящие в него методы. Использование интерфейсов предоставляет относительно дешёвую альтернативу множественному наследованию.

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

    Способы передачи параметров

    1. по значению - при вызове подпрограммы выделяется память для формального параметра. Вычисляется значение фактического параметра и результат записывается в указанную память. Далее подпрограмма уже работает с этой копией (используется для входных параметров; т.к. мы работаем с копией, то сам фактический параметр изменить уже нельзя, что гарантирует защиту от побочного эффекта). По окончании работы подпрограммы память освобождается.

    2. для результата - память для переменной выделяется, но туда ничего не записывается, по окнончанию работы подпрограммы происходит запись из нее в фактический параметр (используется для передачи выходных параметров, т.е. результата).

    3. значение-результат - используются оба механизма (может использоваться для входных, входно-выходных и выходных параметров, но может возникнуть побочный эффект).

    4. по ссылке (адресу) - память не выделяется, подпрограмма работает с памятью выделенной фактическому параметру (может быть использовано для входных, входно-выходных и выходных параметров)

    5. Текст, макроподстановка – везде, где встречается обработка формального параметра происходит автоматическая замена формального параметра на текст фактического. При этом в зависимости от текста фактического параметра не всегда может произойти корректная работа компилятора. Пример: пусть xзаменяется на a+b, тогда выражение вида x:=x+1 заменяется на выражение a+b:=a+b+1, а это ошибка, т.к. не понятно значение какой переменной необходимо менять.

    В Паскале реализованы не все из указанных выше способов передачи параметров. В этом языке программирования способ передачи определяется по описанию заголовка подпрограммы. Если перед именем переменной следует зарезервированное слово var, то считается, что переменная передается по ссылке, а если этого слова нет - то по значению.
    1   ...   16   17   18   19   20   21   22   23   ...   37


    написать администратору сайта