Объектно-ориентированное программирование
Понятие объекта
Развитие идей структурного и событийного программирования существенно подняло производительность труда программистов и позволило в разумные сроки (несколько месяцев) создавать приложения объемом в сотни тысяч строк. Однако такой объем уже приблизился к пределу возможностей человека, и потребовались новые технологии разработки программ.
В середине 80-х годов в программировании возникло новое направление, основанное на понятии объекта. До того времени основные ограничения на возможность создания больших систем накладывала разобщенность в программе данных и методов их обработки.
Реальные объекты окружающего мира обладают тремя базовыми характеристиками: они имеют набор свойств, способны разными методами изменять эти свойства и реагировать на события, возникающие как в окружающем мире, так и внутри самого объекта. Именно в таком виде в языках программирования и реализовано понятие объекта, как совокупности свойств (структур данных, характерных для этого объекта), методов их обработки (подпрограмм изменения свойств) и событий, на которые данный объект может реагировать и которые приводят, как правило, к изменению свойств объекта.
Появление возможности создания объектов в программах качественно повлияло на производительность труда программистов. Максимальный объем приложений, которые стали доступны для создания группой программистов из 10 человек, за несколько лет увеличился до миллионов строк кода, при этом одновременно удалось добиться высокой надежности программ и, что немаловажно, повторно использовать ранее созданные объекты в других задачах.
Класс
Объекты могут иметь идентичную структуру и отличаться только значениями свойств. В таких случаях в программе создается новый тип, основанный на единой структуре объекта (по аналогии с тем, как создаются новые типы для структур данных). Он называется классом, а каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса.
Описание нового класса
Описание нового класса похоже на описание новой структуры данных, только к полям (свойствам) добавляются методы — подпрограммы.
В Си++ и Паскале для описания класса используется ключевое слово class.
Паскаль:
class TMyClass
Iteml: integer;
Item2: string;
function GetSum(n: integer): integer;
procedure Initialize;
end;
Си++:
class TMyClass
{
int Iteml;
int Item2;
int GetSum(int n) ;
void Initialize();
При определении подпрограмм, принадлежащих конкретному классу, его методов, в заголовке подпрограммы перед ее названием явно указывается, к какому классу она принадлежит. Название класса от названия метода отделяют специальные символы (точка в Паскале или два двоеточия в Си++).
Паскаль:
procedure TMyClass.Initialize;
begin
Iteml := 1;
Item2 := "";
end;
Си++:
void TMyClass::Initialize()
{
Iteml = 1;
Item2 = 0;
}
Класс — это тип данных, такой же, как любой другой базовый или сложный тип. На его основе можно описывать конкретные объекты (экземпляры классов).
Паскаль:
var Cl, C2: TMyClass;
Си++:
TMyClass Cl, C2;
Доступ к свойствам объектов и к их методам осуществляется так же, как к полям записей, через точку:
Cl.Iteml := 5;
С2.Initialize;
х := Cl.GetSum(21);
Объединение данных с методами в одном типе (классе) называется инкапсуляцией.
Наследование
Важнейшая характеристика класса — возможность создания на его основе новых классов с наследованием всех его свойств и методов и добавлением собственных. Класс, не имеющий предшественника, называется базовым.
Например, класс «животное» имеет свойства «название», «размер», методы «идти» и «размножаться». Созданный на его основе класс «кошка» наследует все эти свойства и методы, к которым дополнительно добавляется свойство «окраска» и метод «пить».
Наследование позволяет создавать новые классы, повторно используя уже готовый исходный код и не тратя времени на его переписывание.
Полиморфизм
В большинстве случаев методы базового класса у классов-наследников приходится переопределять — объект класса «кошка» выполняет метод «идти» совсем не так, как объект класса «амеба». Все переопределяемые методы по написанию (названию) будут совпадать с методами базового объекта, однако компилятор по типу объекта (его классу) распознает, какой конкретно метод надо использовать, и не вызовет для объекта класса «кошка» метод «идти» класса «животное». Такое свойство объектов переопределять методы наследуемого класса называется полиморфизмом.
Визуальное программирование
Технологии объектного, событийного и структурного программирования сегодня объединены в .RAD-системах, которые содержат множество готовых классов, представленных в виде визуальных компонентов, которые добавляются в программу одним щелчком мыши. Программисту надо только спроектировать внешний вид окон своего приложения и определить обработку основных событий — какие операторы будут выполняться при нажатии на кнопки, при выборе пунктов меню или щелчках мышкой. Весь вспомогательный исходный код среда сгенерирует сама, позволяя программисту полностью сосредоточиться только на реализации алгоритма.
Вопросы для самоконтроля
Для чего в языки программирования было введено понятие класса?
В чем различие между классом и объектом?
Поясните понятие инкапсуляции на бытовых примерах.
Для чего применяется механизм наследования?
Как полиморфизм модифицирует принцип наследования?
Опишите использование принципов объектно-ориентированного программированиия в средах быстрого проектирования.
- Введение
- Глава 1 Информация и информатика
- 1.1. Информация в материальном мире
- 1.2. Данные
- 1.3. Файлы и файловая структура
- 1.4. Информатика
- Подведение итогов
- Вопросы для самоконтроля
- Глава 2 Вычислительная техника
- 2.1. История развития средств вычислительной техники
- 2.2. Методы классификации компьютеров
- 2.3. Состав вычислительной системы
- Вопросы для самоконтроля
- Глава 3 Устройство персонального компьютера
- 3.1. Базовая аппаратная конфигурация
- 3.2. Внутренние устройства системного блока
- Системы, расположенные на материнской плате
- Периферийные устройства персонального компьютера
- Практическое занятие
- Глава 4 Функции операционных систем персональных компьютеров
- 4.1. Обеспечение интерфейса пользователя
- 4.2. Обеспечение автоматического запуска
- 4.3. Организация файловой системы
- 4.4. Обслуживание файловой структуры
- Управление установкой, исполнением и удалением приложений
- Обеспечение взаимодействия с аппаратным обеспечением
- 4.7. Обслуживание компьютера
- 4.8. Прочие функции операционных систем
- Вопросы для самоконтроля
- Глава 5 Основы работы операционной системы windows 98
- 5.1. Основные объекты и приемы управления
- 5.2. Файлы и папки Windows
- 5.3. Операции с файловой структурой
- 5.4. Использование Главного меню
- 5.5. Установка и удаление приложений Windows
- 5.6. Установка оборудования
- Практическое занятие
- Исследовательская работа
- Глава 6 Настройка операционной системы Windows 98
- 6.1. Настройка средств ввода-вывода данных
- 6.2. Настройка элементов оформления Windows 98
- 6.3. Настройка элементов управления Windows 98
- 6.4. Настройка средств автоматизации Windows 98
- 6.5. Настройка шрифтов
- 6.6. Прочие настройки Windows 98
- 6.7. Справочная система Windows 98
- Практическое занятие
- Самостоятельная работа
- Глава 7 Стандартные приложения
- 7.1. Стандартные прикладные программы
- 7.2. Принципы внедрения и связывания объектов
- 7.3. Служебные приложения Windows 98
- 7.4. Стандартные средства мультимедиа
- Средства обеспечения совместимости с приложениями ms-dos
- Практическое занятие
- Глава 8 Компьютерные сети, Интернет, компьютерная безопасность
- 8.1. Компьютерные сети
- 8.2. Интернет. Основные понятия
- 8.3. Подключение к Интернету
- 8.4. Вопросы компьютерной безопасности
- Практическое занятие
- Глава 9 Получение информации из Интернета
- 9.1. Основные понятия World Wide Web
- 9.2. Работа с программой Internet Explorer 5.0
- 9.3. Поиск информации в World Wide Web
- 9.4. Отправка и получение сообщений
- Практическое занятие
- Глава 10 Создание простых текстовых документов
- 10.1. Общие сведения о текстовом процессоре
- 10.2. Приемы работы с текстами в процессоре
- 10.3. Приемы и средства автоматизации разработки документов
- Практическое занятие
- Глава 11 Создание комплексных текстовых документов
- 11.1. Ввод формул
- 11.2. Работа с таблицами
- 11.3. Работа с диаграммами
- 11.4. Работа с графическими объектами
- Практическое занятие
- Глава 12 Обработка данных средствами электронных таблиц
- Создание электронных таблиц Microsoft
- 12.2. Применение электронных таблиц для расчетов
- Практическое занятие
- Глава 13 Работа с базами данных
- 13.1. Основные понятия баз данных
- 13.2. Проектирование баз данных
- 13.3. Работа с субд Microsoft Access 2000
- Практическое занятие
- Глава 14 Приемы и методы работы со сжатыми жанными
- 14.1. Теоретические основы сжатия данных
- 14.2. Программные средства сжатия данных
- Практическое занятие
- Исследовательская работа
- 14.3. Программные средства уплотнения носителей
- Практическое занятие
- Исследовательская работа
- Глава 15 Введение в компьютерную графику
- Основы представления графических данных
- 15.2. Представление графических данных
- Практическое занятие
- 15.3. Средства для работы с растровой графикой
- 15.4. Средства для работы с векторной графикой
- Практическое занятие
- Исследовательская работа
- Практическое занятие
- Исследовательская работа
- Глава 16 Векторный редактор
- 16.1. Особенности CorelDraw
- 16.2. Настройка параметров CorelDraw
- Совместное использование панелей инструментов, свойств, интерактивных средств
- Работа с графикой и текстом
- Практическое занятие
- Глава 17 Автоматизация обработки документов
- 17.1. Преобразование документов в электронную форму
- Практическое занятие
- 17.2. Автоматизированный перевод документов
- Практическое занятие
- Глава 18 Средства автоматизации научно-исследовательских работ
- 18.1. Компьютер как инструмент научной работы
- 18.2. Приемы работы с системой MathCad
- Практическое занятие
- Глава 19 Публикация web-документов
- 19.1. Создание Web-документов
- 19.2. Применение языка html
- 19.3. Работа в редакторе FrontPage Express
- 19.4. Публикация Web-документов
- Практическое занятие
- Исследовательская работа
- Глава 20 Основы программирования
- 20.1. Языки программирования
- 20.2. Системы программирования
- Алгоритмическое (модульное) программирование
- 20.4. Структурное программирование
- Объектно-ориентированное программирование
- 20.6. Проектирование программ
- 20.7. Пример на Бейсике. Разведение кроликов
- 20.8. Пример на Паскале. Раскрашивание круга
- Практические задания по программированию
- Рекомендуемая литература
- Глава 5 Основы работы операционной системы windows 98 114
- Глава 6 Настройка операционной 139
- Информатика. Базовый курс
- 196105, Санкт-Петербург, ул. Благодатная, д. 67в.
- 197110, Санкт-Петербург, Чкаловский пр., 15.