Объектно ориентированный язык программирования примеры программ

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

Что такое ООП

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

  • инкапсуляция;
  • наследование;
  • полиморфизм.

Некоторые принципы, которые были изначально заложены в первые ООЯ, подверглись существенному изменению.

Языки ООП два

Примеры объектно-ориентированных языков:

  1. Pascal. С выходом Delphi 7 на официальном уровне стал называться Delphi. Основная область использования Object Pascal — написание прикладного ПО.
  2. C++ широко используется для разработки программного обеспечения, является одним из самых популярных языков. Применяется для создания ОС, прикладных программ, драйверов устройств, приложений, серверов, игр.
  3. Java — транслируется в байт-код, обрабатывается виртуальной машиной Java. Преимуществом такого способа выполнения является независимость от операционной системой и оборудования. Существующие семейства: Standard Edition, Enterprise Edition, Micro Edition, Card.
  4. JavaScript применяется в качестве языка сценариев для web-страниц. Синтаксис во многом напоминает Си и Java. Является реализацией Ecmascript. Сам Ecmascript используется в качестве основы для построения других скриптовых языков, таких как JScript, ActionScript.
  5. Objective-C построен на основе языка Си, а сам код Си понятен компилятору Objective-C.
  6. Perl — высокоуровневый интерпретируемый динамический язык общего назначения. Имеет богатые возможности для работы с текстом, изначально разработан именно для манипуляций с текстом. Сейчас используется в системном администрировании, разработке, сетевом программировании, биоинформатике и т. д.
  7. PHP. Аббревиатура переводится как препроцессор гипертекста. Применяется для разработки веб-приложений, в частности серверной части. С его помощью можно создавать gui-приложения с помощью пакетов PHP-GTK, PHP-Qt, WinBinder.
  8. Python — язык общего назначения, ориентирован на повышение производительности разработчика и читаемость кода. Был разработан проект Cython, с помощью которого осуществляется трансляция программ, написанных на Python в код на языке Си.

Абстракция

Любая книга из рода “Объектно-ориентированное программирование для чайников” выделяет один из главных принципов — абстракцию. Идея состоит в разделении деталей или характеристик реализации программы на важные и неважные. Необходима для крупных проектов, позволяет работать на разных уровнях представления системы, не уточняя детали.

Вся суть объектно-ориентированного программирования

ООП за 5 минут что такое объектно-ориентированное программирование

Абстрактный тип данных представляется как интерфейс или структура. Позволяет не задумываться над уровнем детализации реализации. АТД не зависит от других участков кода.

Известный афоризм Дэвида Уилера гласит: Все проблемы в информатике можно решить на другом уровне абстракции.

Наследование

Объектно-ориентированные языки являются наследуемыми — это один из важнейших принципов.

Наследование классов

Обозначает, что функциональность некоторого типа может быть повторно использована. Класс, который наследует свойства другого, называется производным, потомком или подклассом. Тот, от которого происходит наследование, называется предком, базовым или суперклассом. Связь потомок-наследник порождает особую иерархию.

Существует несколько типов наследования:

  • простое;
  • множественное.

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

Наследование выглядит так:

return «just animal»;

return «the animal is eating»;

class Cow extends Animal

Return «something that looks like a cow»;

Видим, что class Cow унаследовал все методы от class Animal. Теперь, если выполнить Cow.eat(), получаем «the animal is eating», соответственно, метод draw() изменен. Cow.draw() вернет “something that looks like a cow”, а Animal.draw() вернет “just animal”.

Инкапсуляция

Инкапсуляция ограничивает доступ компонентов к другим, связывает данные с методами для обработки. Для инкапсуляции используется спецификатор доступа private.

Спецификатор приват

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

Name принимается в качестве аргументов конструктора. Когда конструктор будет использован в других частях кода, ничто не сможет изменить элемент name. Как видим, он указывается внутри, для других частей кода он недоступен.

Полиморфизм

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

Пример полиморфизм

В примере выше находится таблица. Мы видим class CardDesk и class GraphicalObject. У обоих есть функция под названием draw(). Она выполняет разные действия, хотя имеет одно имя.

Ad hoc полиморфизм или специальный полиморфизм использует:

  • перегрузку функций, методов;
  • приведение типов.

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

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

«Один интерфейс — много реализаций» Бьерн Страуструп.

Класс

Класс — это такой тип данных, который состоит из единого набора полей и методов.

Пример класса

Имеет внутренние и внешние интерфейсы для управления содержимым. При копировании через присваивание копируется интерфейс, но не данные. Разные виды взаимодействуют между собой посредством:

  • наследования;
  • ассоциации;
  • агрегации.

При наследовании дочерний класс наследует все свойства родителя, ассоциация подразумевает взаимодействие объектов. Когда объект одного класса входит в другой, это называется агрегацией. Но когда они еще зависят друг от друга по времени жизни, — это композиция.

Читайте также:
Программа определение координат мыши

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

В Object Pascal описывается следующим образом:

Здесь SuperClass — предок, от которого происходит наследование.

Для C++ создание выглядит так:

class MyClass: public Parent

В этом примере Parent является предком, если таковой имеется. Спецификаторы private, public, protected обозначают то же самое, что в предыдущем примере на Паскале. Также мы видим конструктор, деструктор, доступные для любой части программы. У C++ все элементы по умолчанию являются private, соответственно, это можно не указывать.

Особенности реализации

В центре объектно-ориентированных языков — объект, он является частью класса. Он состоит из:

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

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

ООП-методологии

Существуют такие методологии:

  • Компонентно-ориентированное программирование;
  • Прототипное программирование;
  • Классоориентированное программирование.

Характеристики ООП

Компонентно-ориентированное программирование опирается на понятие компонента — такого составляющего программы, которое предназначено для повторного использования. Реализуется как множество конструкций с общим признаком, правилами, ограничениями. Подход используется в объектно-ориентированном языке Java, где компонентная ориентация реализуется посредством “JavaBeans”, написанных по одним правилам.

В прототипном программировании нет понятия класса — наследование производится за счет клонирования существующего прототипа. Это основа объектно-ориентированных языков javascript и других диалектов ecmascript, а также lua или lo. Главные особенности:

  • потомки не должны сохранять структурное подобие прототипа (в отношении класс — экземпляр это происходит именно так);
  • при копировании прототипа все методы наследуются один в один.

Классоориентированное программирование фокусируется на понятии класс и экземпляр. Класс определяет общую структуру, поведение для экземпляров, которые их перенимают.

Объектно-ориентированные языки

Все ООЯ полностью отвечают принципам ООП — элементы представляют собой объекты, у которых есть свойства. При этом, могут быть дополнительные средства.

Языки ООП

ООЯ обязательно содержит набор следующих элементов:

  • объявление классов с полями, методами;
  • расширение за счет наследования функций;
  • полиморфное поведение.

Кроме вышеперечисленного списка, могут быть добавлены дополнительные средства:

  • конструктор, деструктор, финализаторы;
  • свойства;
  • индексаторы;
  • модификаторы доступа.

Некоторые ООЯ отвечают всем основным элементам, другие — частично. Третьи являются гибридными, то есть совмещаются с подсистемами других парадигм. Как правило, принципы ООП могут применяться для необъектно-ориентированного языка тоже. Однако применение ООЯ еще не делает код объектно-ориентированным.

ЯП поддерживают больше, чем одну парадигму. Например, PHP или JavaScript поддерживают функциональное, процедурное, объектно-ориентированное программирование. Java работает с пятью парадигмами: объектно-ориентированной, обобщенной, процедурной, аспектно-ориентированной, конкурентной. C# считается одним из самых успешных примеров мультипарадигмальности.

Он поддерживает те же подходы, что Java, к этому списку добавляется еще рефлексивная парадигма. Такой ЯП, как Oz, разработан для того, чтобы объединить все понятия, традиционно связанные с различными программными парадигмами.

Источник: fb.ru

22. Приведите примеры объектно-ориентированных языков.

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

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

2. Приведите структуры циклов Пока и До.

3. Отличие циклов До и Пока.

Цикл «Пока» начинается с проверки логического выражения. В цикле «До» проверка условия выполняется после операторов цикла

4. На чем основано нисходящее проектирование?

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

5. Что вы можете сказать о концепции модульного проектирования?

Модуль – основа концепции модульного программирования. Каждый модуль в функциональной декомпозиции представляет собой «черный ящик» с одним входом и одним выходом. Функциональная декомпозиция задачи – разбиение большой задачи на ряд более мелких, функционально самостоятельных подзадач – модулей

6. Что такое объект в объектно-ориентированном программировании?

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

7. Три принципа объектно-ориентированного программирования.

• Инкапсуляция – объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта, а алгоритмы – объектными методами.

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

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

8. Особенность декларативного программирования.

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

9. Перечислите методологии программирования.

Концепция модульного программирования

Объектно-ориентированное программирование (ООП)

10. Что такое CASE-системы?

CASE-технология (Computer Aided Software Engineering-CASE) – средство для создания информационных систем.

Читайте также:
Структура школьной программы по истории

11. В каких областях применяются экспертные системы?

в слабо структурированной и трудно формализуемой предметной области.

12. Что входит в состав экспертной системы?

База знаний, база данных, машина логического вывода, подсистема общения, подсистема объяснений, подсистема приобретения знаний

13. Отличие знаний от данных.

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

14. Приведите модели представления знаний.

• формальные логические модели

15. Что такое продукционная модель представления знаний?

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

представить знания в виде предложений типа «Если (условие),

16. Что такое семантические сети в представлении знаний?

Семантическая сеть – это ориентированный граф, вершины которого –

понятия, а дуги – отношения между ними.

17. Что такое фреймы в представлении знаний?

Фрейм – это абстрактный образ для представления некоего стереотипа

18. Какие стратегии вывода для продукционной модели вы знаете?

Чаще всего вывод на такой базе знаний бывает прямой (от данных к поиску цели) или обратный (от цели для ее подтверждения – к данным).

19. Принципы(положения) структурного программирования.

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

• Простота управляющих структур, используемых в задаче. Логическая структура программы может быть выражена комбинацией трех базовых структур: следования, ветвления и цикла.

20. Перечислите преимущества использования модулей.

1) возможность создания программы несколькими программистами;

2) простота проектирования и последующих модификаций программы;

3) упрощение отладки программы – поиска и устранения в ней ошибок;

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

21. Что такое экспертная система?

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

Тема 6. Паскаль – структурный язык программирования высокого уровня

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

2. Отличие константы от переменной в языке Паскаль.

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

3. Перечислите базовые типы данных в языке Паскаль.

1) Integer (целый);

2) Real (вещественный);

3) Char (символьный);

4) String (строковый);

5) Boolean (логический).

4. Перечислите арифметические операции и стандартные функции над данными целого типа.

5. Перечислите арифметические операции и стандартные функции над данными вещественного типа.

6. Какие арифметические операции невозможны над данными вещественного типа.

7. Сколько памяти занимают данные целого, вещественного и символьного типа?

Integer – 2; Real – 6; Char – 1

8. Какие значения принимают данные логического типа, и сколько места в памяти они занимают.

True, false, 1 байт

9. Привести таблицу истинности логических операций Not, And, Or.

X Y Not X X And Y X Or Y

10. Приведите формат оператора ввода. Приведите примеры оператора ввода.

11. Приведите формат оператора присваивания. Приведите примеры оператора присваивания.

12. Приведите формат оператора вывода. Приведите примеры оператора.

13. Для чего нужно указание формата числа в операторе вывода? Приведите примеры.

Для переменной целого типа – это одно число, указывающее число позиций, отводимых под целое значение (например, write(x:10);). Для переменной вещественного типа – это два числа, первое из которых указывает число позиций, отводимых под все число, включая десятичную точку, второе – число позиций, отводимых под дробную часть числа (например, write(y:7:2);).

14. Приведите формат условного оператора. Приведите примеры.

If A>B Then C:=A Else C:=B;

15. Какие операторы цикла вы знаете?

While, Repeat, For

16. Чем отличается цикл While от цикла Repeat?

проверка условия повторения тела цикла Repeat находится не перед ним, как в While, а после.

17. Приведите формат оператора цикла While. Приведите пример оператора.

18. Приведите формат оператора цикла Repeat. Приведите пример оператора.

19. Приведите форматы оператора цикла For. Приведите пример оператора.

Здесь П.Ц – параметр цикла, Н.З. – его начальное значение, К.З. – соответственно конечное значение параметра.

20. Чему равен шаг изменения параметра цикла (счетчика) в цикле For?

21. Что называется массивом?

Массивом будем называть упорядоченную последовательность данных одного типа, объединенных одним именем.

22. Отличие одномерного массива от двумерного.

Одномерный массив можно представить в виде линейной таблице, а двумерный в виде таблицы с несколькими строками

23. Как объявить одномерный массив?

24. Как объявить двумерный массив? Пример.

A : Array [1..20,1..30] Of Integer;

25. Приведите фрагмент ввода одномерного массива с клавиатуры.

For I:=1 To 20 Do

26. Приведите фрагмент ввода двумерного массива с клавиатуры.

For i:=1 to 20 do

For j:=1 to 30 do

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

For I:=1 To 20 Do

a[i] := random (50)-25;

числа от -25 до 24

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

For i:=1 to 20 do

For j:=1 to 30 do

a[I,j] := random (50)-25; числа от -25 до 24

29. Приведите фрагмент вывода одномерного массива в строку.

Читайте также:
Эдиус программа для монтажа видео отзывы

For I:=1 to 20 Do

30. Приведите фрагмент вывода двумерного массива в виде матрицы.

For i:=1 to 20 do begin

For j:=1 to 30 do

31. Какие виды подпрограмм вы знаете?

Процедуры и функции

32. Когда используются подпрограммы?

в случае, когда одна и та же последовательность команд встречается в программе несколько раз.

33. Что должна иметь в своем составе любая подпрограмма?

34. Приведите формат процедуры.

35. Приведите формат функции.

36. Где объявляются локальные переменные, а где глобальные?

Глобальные – в начале программы (в основной программе)

Локальные – внутри подпрограмм

37. Что такое формальные и фактические параметры подпрограмм?

формальные параметры — имена, под которыми будут фигурировать передаваемые данные внутри подпрограммы

Значения, указываемые при вызове подпрограммы, называются фактическими параметрами.

38. Что означает модификатор Var, стоящий перед формальным параметром?

Он позволяет передать информацию обратно в основную программу

39. Отличие процедуры от функции.

вается указанием типа значения функции;

2. Раздел операторов функции должен содержать хотя бы один оператор

присваивания имени функции;

3. Обращение к функции – не оператор, а выражение.

40. Описание констант и переменных в языке Паскаль.

Описание именованных констант начинается служебным словом Const.

Раздел описания переменных начинается служебным словом Var, после

которого следуют записи следующего вида:

41. Что такое переменная в языке Паскаль.

Переменная в Паскале – именованный участок памяти для хранения данных определенного типа.

42. Чем отличается оператор Writeln от Write.

Различие между операторами Write и Writeln таково: после выполнения оператора Writeln (от Write line) курсор переходит на новую строчку, а после выполнения оператора Write курсор остается на строке вывода, и следующий оператор вывода начинает вывод именно с этой позиции.

Тема 7. Основные принципы построения компьютерных сетей

1. Что понимают под вычислительной сетью?

Под вычислительной сетью понимают соединение двух и более ЭВМ средствами передачи данных (средстами телекоммуникаций) с целью совместного использования их ресурсов (процессоров, устройств памяти, устройств ввода/вывода, данных).

2. Основное назначение вычислительных сетей.

с целью совместного использования процессоров, устройств памяти, устройств ввода/вывода, данных

3. Что составляют аппаратные средства сети?

Среди аппаратных средств сети можно выделить компьютеры и коммуникационное оборудование.

4. Что включают в себя программные компоненты сети?

Программные компоненты состоят из операционных систем и сетевых приложений.

5. Перечислить основные показатели качества сети.

1. Полнота выполняемых функций.

2. Производительность

3. Пропускная способность

4. Надежность сети

5. Достоверность

6. Безопасность информации

7. Прозрачность сети

8. Масштабируемость

9. Универсальность сети

6. Что понимается под производительностью сети?

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

7. Что понимается под пропускной способностью сети?

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

8. Что понимается под безопасностью сети?

Безопасность – это способность сети обеспечить защиту информации от несанкционированного доступа.

9. Что понимается под прозрачностью сети?

Прозрачность означает невидимость особенностей внутренней архитектуры сети для пользователя: в оптимальном случае он должен обращаться к ресурсам сети как к локальным ресурсам своего собственного компьютера.

10. Что понимается под масштабируемостью сети?

Масштабируемость – возможность расширения сети без заметного снижения ее производительности.

11. Что понимается под универсальностью сети?

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

12. Перечислите и охарактеризуйте виды сетей в зависимости от территории.

 локальные (ЛВС или LAN – Local Area Network);

Локальной называется сеть, абоненты которой находятся на небольшом (до 10–15 км) расстоянии друг от друга. Обычно такая сеть привязана к конкретному объекту. К классу ЛВС относятся сети отдельных предприятий, фирм, банков, офисов, корпораций и т. д.

 региональные (РВС или MAN – Metropolitan Area Network);

Региональные сети связывают абонентов города, района, области или даже небольшой страны. Обычно расстояния между абонентами региональной ИВС составляют десятки – сотни километров.

 глобальные (ГВС или WAN – Wide Area Network).

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

Источник: studfile.net

Объектно ориентированный язык программирования примеры программ

Спрятать опции

Установить закладку

+ Настройки

Размер шрифта:
14 | 16 | 18 | 20 | 22 | 24

Ширина текста:
50% | 60% | 70% | 80% | 90% | 100%

Цвет текста:
Установить
Цвет фона:
Установить

Сбросить настройки

+ Оглавление

Об авторе

Предисловие

ЧАСТЬ ПЕРВАЯ Концепции

Глава 1 Сложность

Глава 2 Объектная модель

Глава 3 Классы и объекты

Глава 4 Классификация

ЧАСТЬ ВТОРАЯ Метод

Глава 5 Обозначения

Глава 6 Процесс

Глава 7 Практические вопросы

ЧАСТЬ ТРЕТЬЯ Примеры приложений

Глава 8 Система сбора данных: метеорологическая станция

Глава 9 Среда разработки: библиотека базовых классов

Глава 10 Архитектура клиент-сервер: складской учет

Глава 11 Искусственный интеллект: криптоанализ

Глава 12 Управление: контроль за движением поездов

Послесловие

Приложение: Объектно-ориентированные языки программирования

А.1. Концепции

А.2. Smalltalk

А.3. Object Pascal

А.5. Common Lisp Object System (CLOS)

А.8. Другие объектно-ориентированные языки программирования

Словарь терминов

Литературные ссылки

Источник: royallib.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru