Урок информатики по теме "Основные понятия объектно-ориентированного программирования". 11-й класс

Разделы: Информатика

Класс: 11


Цели урока:

  1. дать понятие класса;
  2. дать понятие метода;
  3. дать понятие объекта;
  4. дать понятие инкапсуляции;
  5. дать понятие полиморфизма;
  6. дать понятие наследования.

Воспитательные цели:

  1. воспитывать чувство критического отношения к собственным знаниям;
  2. умение логически мыслить.

Развивающие цели:

  1. развивать мышление;
  2. усидчивость.

План урока:

  1. Организационный момент.
  2. Объяснение нового материала.
  3. Закрепление новой темы.
  4. Первичный контроль знаний учащихся.
  5. Итог урока. Домашняя работа

Ход урока

1. Организационный момент

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

Оценки за эту часть работы не выставляются, поэтому постарайтесь максимально самостоятельно выполнять эту работу.

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

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

Поэтому, повторюсь еще раз: постарайтесь максимально самостоятельно отвечать на вопросы теста.

2. Изучение нового материала с параллельной проверкой усвоения нового материала.

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

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

В программе описание класса помещается в разделе описания типов Type.

Type

TShcola=class
    private
    fname: string[15];
    address: string[35];
    public
    procedure show;
end;

{TShcola – имя класса;
fname, address – имена полей;
show – имя метода}

Объект – это осязаемая сущность, которая четко проявляет свое поведение.

В программе описание объекта помещается в разделе описания переменных var

var

uchenik: TShcola;
uchitel: TShcola;

{ TShcola=class
private
    fname: string[15];
    address: string[35];
    constructor create;
public
    procedure show;
end;}

Доступ к полю fname объекта uchenik будет осуществляться следующим способом: Uchenik. fname

Следует обратить особое внимание на то, что в Object Pascal объект является динамической структурой. Переменные-объекты содержат не данные, а ссылку на данные объекта. Поэтому программист должен позаботиться о выделении памяти для этих данных.

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

Чтобы подчеркнуть особую роль этой процедуры, вместо слова procedure используется слово constructor.

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

Например, после выполнения инструкции

uchenik:= TShcola.create;

выделяется необходимая память для данных объекта uchenik

Очистку памяти от полей объекта осуществляет метод – деструктор free:

uchenik. Free

Метод класса (процедуры и функции, объявление которых включено в описание класса) выполняет действия над объектами класса.

Чтобы метод был выполнен, надо указать имя объекта и имя метода, отделив одно имя от другого точкой: uchenik.show;

TShcola=class
  private
    fname: string[15];
    address: string[35];
    constructor create;
  public
    procedure show;
end;
. . .
var
        uchenik: TShcola;
        uchitel: TShcola;
. . .
uchenik. Fname:=’Петров’;
uchenik. Address:=’Абая, 55’;
uchenik. Show;
procedure TShcola. Show;
begin
    Showmessage(‘Имя: ’+ fname + ‘ Адрес: ’+ address);
end;

На экране появится: Имя: Петров Адрес: Абая, 55

Инкапсуляция – скрытие полей объекта с целью обеспечения доступа к ним только посредством методов класса.

В Object Pascal ограничение доступа к полям объекта реализуется при помощи свойств объекта. Свойство объекта характеризуется полем, которое хранит значение свойства, и двумя методами, которые обеспечивают доступ к полю свойства.

Метод установки значения свойства называется методом записи свойства (write), метод получения значения свойства называется методом чтения свойства (read).

В описании класса перед именем свойства записывают слово property (свойство). После имени свойства указывается его тип, затем имена методов, обеспечивающих доступ к значению свойства. После слова read указывают имя метода, которое обеспечивает чтение свойства, после слова write – записи свойства имя метода.

В приведенном примере свойство name доступно только для чтения, а свойство address – для чтения и записи.

Type
  Tname: string[15];
  Taddress: string[35];
  TShcola=class
    private
      fname: Tname;// значение свойства name
      address: Taddress;
      constructor create;

      function Getname: Tname;
      function Getaddress: Taddress;
      procedure Setaddress: Taddress;
   public
      procedure show;
    property name: Tname
      read Getname;
    property address: Taddress
      read Getaddress
      write Setaddress;
------------
Tklas = class (TShcola)
      Nomer: integer;

end;

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

При этом новый класс (потомок) наследует свойства и методы родительского класса (предка).

В объявлении класса-потомка указывают класс родителя

Function TShcola.info: string;
begin
    resut:=’’;
end;

Function TStud.info: string;
begin
    resut:=fname+’учится в группе’ + inttostr(Nomer);
end;

Function TProf.info: string;
begin
    resut:=fname+’название кафедры:’ + Nazv;
end;

Полиморфизм – это возможность использовать одинаковые имена для методов, входящих в различные классы.

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

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

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

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

В программе список людей можно представить массивом объектов класса TShcola

List: array[1..n] of TShcola;

Директива private предназначена для скрытия некоторых деталей описания объекта от пользователя и недоступны за пределами модуля.

3. Первичный контроль

САМОСТОЯТЕЛЬНАЯ РАБОТА

по теме «Основные понятия объектно-ориентированного программирования»

1. Как называется класс, который приведен на примере ниже?

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
. . .
end;

2. Что обозначает выражение (TForm) в строке TForm1 = class(TForm)?

3. Выпишите название полей, приведенных ниже?

TDenartament=class
    private
    fsotrudnic: string[15];
    faddress: string[15];
    constructor create;
    function Getname: Tname;
    function Getaddress: Taddress;
    procedure Setaddress: Taddress;
public
    procedure show;
. . .

4. Выпишите название методов, приведенных ниже?

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  procedure ComboBox1Click(Sender: TObject);
. . .

end;

5. Что обозначает следующие выражения?

var

Form1:TForm;

4. Подведение итогов уроков. Оценка степени усвояемости материала.

5. Домашнее задание. Учить конспект.

Тест по теме «Основные понятия объектно-ориентированного программирования» (Приложение1)

Учитель: Закрасьте зеленым цветом правильные ответы.