Объектно-ориентированное программирование – современная технология программирования

Страницы работы

Содержание работы

Лекция №17

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП)

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

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

     Синтаксис объекта                                    Пример №1       

    T = Objekt                                             Type     T = Objekt

               поле;                                                                  FIO               :string[15];

                . . .                                                                     B1,B2,B3,B4:2..5;

               поле;                                                                    Procedure Get;

                метод;                                                                 Procedure Put;
                 . . .                                                                    Function Sum;
                метод;                                                    End;                                         

           End;

Свойства ООП

     Инкапсуляция – объединение данных и правил их преобразования. В описании вначале располагаются поля данных а затем правила. Метод имеет доступ к полям объекта без передачи их в виде параметров. Доступ к полям только через методы.

      Описание методов задается отдельно,  при этом имя подпрограммы является составным  и состоит из имени объектового типа («хозяина»), точки имени подпрограммы. Для работы с составными именами можно использовать оператор присоединения.

      Наследование - любой объект м.б. объявлен как производный («потомок») от объекта объявленного ранее («родителя», «предка») при этом он наследует поля данных и методы родителя и м.б. дополнен другими данными и методами. Он в сою очередь может являться родителем для др. потомка, т.е. м. б. создана иерархия объектов. У объекта м.б. один родитель и сколь угодно потомков.

     Это свойство позволяет создавать расширяемые программы.

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

Виртуальные методы

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

     Методы разделяются на статические и виртуальные.

одним.

      Статические методы – код, которых подсоединяется к вызову в процессе компиляции.

      Виртуальные  методы – код, которых подсоединяется к вызову в процессе выполнения программы.

      Виртуальный  метод имеет тип Virtual  (например: Procedure: Virtual).

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

    Экземпляры объектов могут размещаться в динамической памяти (куче). Для освобождения динамической памяти при работе с объектами используется специальная подпрограмма, которая называется деструктор (Destructor).

    Пример №1

    На основании объекта школьник создать объект студент.

Текст программы

Program Obj2;

   Uses crt;

   Type skol=object

             FIO                :string[15];

             B1,B2,B3,B4 :2..5;

             Procedure Get;

             Procedure Put;

             Function Sbal:real;

         End;

   Var

       sk         :skol;

       sb         :real;

       Procedure skol.Get;

         Begin

          Writeln('Введите FIO');  Readln(FIO);

          Writeln('Баллы');             Readln(B1,B2,B3,B4)

        End;

        Procedure skol.Put;

         Begin

          Writeln('sb=',sb:4:2)

        End;

        Function skol.Sbal:real;

          Var s:real;

           Begin

             s:=(B1+B2+B3+B4)/4;

             Sbal:=s

           End;

                 {  Начало  описание обьекта "студент"  }

        Type stud=object(skol)

               str         :string[10];

               Procedure Gets;

               Procedure Puts;

             End;

         Procedure stud.Gets;

         Begin

             Writeln('Введите Страну');   Readln(str);

        End;

        Procedure stud.Puts;

         Begin

          Writeln('Страна->',str)

        End;

       Var

      st:stud;

                 {  Конец описания }

        Begin

        clrscr;

  {       With sk do  }                                     WitH st do

  {         Begin     }                                           Begin

  {           Get ;   }                                                Get;

  {           sb:=Sum;}                                            sb:=Sbal;

  {           Put;    }                                                 Put;

  {           Readln  }                                               Gets;

  {         End       }                                                Puts;

  {    End.           }                                                Readln

                                                                           End   

                                                                           End.

Похожие материалы

Информация о работе