РуЛиб - онлайн библиотека > Гуськова Ольга > Учебники и самоучители по компьютеру > Объектно-ориентированное программирование в Java : учебное пособие > страница 3

Читаем онлайн «Объектно-ориентированное программирование в Java : учебное пособие» 3 cтраница

модуль.
Исследования департамента обороны США 1970-х годов показали, что 80% бюджета уходило на поддержку программного обеспечения и только 20% – на его разработку. При этом программные модули, как правило, невозможно было повторно использовать в других
программах. В то же время компоненты аппаратного обеспечения
можно использовать в других устройствах. Поэтому было предложено разрабатывать программное обеспечение таким образом,
чтобы оно обладало свойствами объекта аппаратного обеспечения.
7
О. И. ГУСЬКОВА. ОБЪЕКТНО ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В JAVA
Для преодоления недостатков структурного программирования
были разработаны языки, поддерживающие парадигму объектно
ориентированного программирования.
Объектно ориентированное программирование (ООП) – методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию
наследования.
Объект – это сущность, обладающая определенным поведением
и способом представления.
Класс – это шаблон, или прототип, по которому создаются объекты. Класс моделирует состояние и поведение объектов реального мира.
Например, автомобиль является экземпляром класса автомобилей. Однако если имеется несколько конкретных автомобилей,
то они не являются классом, потому что класс – это абстракция.
Класс содержит статические свойства (их также называют полями, атрибутами, характеристиками, переменными-членами класса)
и динамическое поведение, общие для всех объектов, в закрытом «запечатанном ящике» и определяет открытый интерфейс для использования таких «ящиков». Поскольку классы хорошо инкапсулированы, то их легко использовать повторно. Таким образом, объектно
ориентированное программирование в классе объединяет данные
и инструкции для обработки данных.
Объект в ООП – это экземпляр некоторого класса. Все экземпляры класса имеют одинаковые свойства, описанные в определении
класса.
Например, можно создать класс «Студент» и определить три экземпляра данного класса: Ivanov, Petrov, Sidorov.
8
1. ОСНОВЫ ОБЪЕКТНО ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
1.2. Краткая история развития
объектно ориентированного программирования
Первым объектно ориентированным языком программирования считается Симула-67, разработанный в 1967 г., хотя Симула-67
традиционно не считается объектно ориентированным языком в каноническом смысле этого слова. Этот язык в значительной степени
опередил свое время, современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Симула-67, и он не выдержал конкуренции с другими языками программирования.
В 1970 г. Алан Кэй и его исследовательская группа в компании Xerox PARK создали персональный компьютер, названный
Dynabook и первый объектно ориентированный язык программирования Smalltalk для программирования на этом компьютере.
По мнению Алана Кея, которого считают одним из «отцов-основателей» ООП, объектно ориентированный подход заключается
в следующем наборе основных принципов (цитата):
«1. Все является объектом.
2. Вычисления осуществляются путем взаимодействия (обмена
данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие. Объекты взаимодействуют, посылая и получая сообщения. Сообщение – это запрос
на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия.
3. Каждый объект имеет независимую память, которая состоит
из других объектов.
4. Каждый объект является представителем класса, который
выражает общие свойства объектов (таких, как целые числа
или списки).
5. В классе задается поведение (функциональность) объекта. Тем
самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия.
6. Классы организованы в единую древовидную структуру
с общим корнем, называемую иерархией наследования. Память
9
О. И. ГУСЬКОВА. ОБЪЕКТНО ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В JAVA
и поведение, связанные с экземплярами определенного класса,
автоматически доступны любому классу, расположенному ниже
в иерархическом дереве.
Таким образом, программа представляет собой набор объектов,
имеющих состояние и поведение. Объекты взаимодействуют посредством сообщений. Естественным образом выстраивается иерархия объектов: программа в целом – это объект, для выполнения своих функций она обращается к входящим в нее объектам, которые,
в свою очередь, выполняют запрошенное путем обращения к другим
объектам программы. Естественно, чтобы избежать бесконечной рекурсии в обращениях, на каком-то этапе объект трансформирует обращенное к нему сообщение в сообщения к стандартным системным
объектам, предоставляемым языком и средой программирования.
Устойчивость и управляемость системы обеспечивается за счет
четкого