- •Экзаменационный вопрос №1. Основные понятия объектно-ориентированного подхода
- •Экзаменационный вопрос №2. Объектно-ориентированная методология
- •Экзаменационный вопрос №3. Основные понятия объектно-ориентированного анализа
- •Экзаменационный вопрос № 4. Методы объектно-ориентированного анализа
- •Экзаменационный вопрос № 5. Пример объектно-ориентированного анализа
- •Экзаменационный вопрос № 6. Основные понятия объектно-ориентированного проектирования
- •Экзаменационный вопрос № 7. Основные понятия объектно-ориентированного программирования
- •Экзаменационный вопрос № 8. История объе́ктно-ориенти́рованного программи́рования
- •Экзаменационный вопрос № 9. Определение ооп и его основные концепции.
- •Экзаменационный вопрос № 10. Сложности определения ооп
- •Экзаменационный вопрос № 11. Особенности реализации ооп
- •Экзаменационный вопрос № 12. Подходы к проектированию объектно-ориентированных программ
- •Экзаменационный вопрос № 13. Компонентное объектно-ориентированное программирование
- •Экзаменационный вопрос № 14. Прототипное объектно-ориентированное программирование
- •Экзаменационный вопрос № 15. Производительность объектных программ
- •Экзаменационный вопрос № 16. Идентификация объектно-ориентированных языков
- •Экзаменационный вопрос № 17.
- •Экзаменационный вопрос № 18.
- •Экзаменационный вопрос № 19.
- •Экзаменационный вопрос № 20.
- •Экзаменационный вопрос № 21.
- •Экзаменационный вопрос № 22. Основные понятия языка ооп Delphi
- •Экзаменационный вопрос № 23. Основные понятия языка ооп Smalltalk
- •Экзаменационный вопрос № 24. Основные понятия языка ооп Java
- •Список зарезервированных слов Java:
- •Import java.Io.IoException; // подключения библиотеки ioException:
- •Int y,X,z,a,b,c,d;//объявление переменных
- •Экзаменационный вопрос № 25. Основные понятия языка ооп c#
- •Структура программы c#
- •Экзаменационный вопрос № 26 Основные понятия языка ооп Ruby
- •Основные элементы языка Ruby
- •Арифметические Операторы:
- •Структура программы на языке Ruby
- •Экзаменационный вопрос № 27 История создания Action Script
- •Основные элементы языка ActionScript
- •Структура программы на языке ActionScript
- •Экзаменационный вопрос № 28 Основные понятия языка ооп Perl
- •Основные элементы языка
- •Экзаменационный вопрос № 29. Основные понятия языка ооп php
- •Основные элементы языка рнр
- •Структура программы на языке рнр
- •Экзаменационный вопрос № 30. Основные понятия языка ооп Visual Basic
Экзаменационный вопрос № 23. Основные понятия языка ооп Smalltalk
История. Разработчик Smalltalk Алан Кей — американский учёный в области теории вычислительных систем.
Smalltalk был создан группой исследователей возглавляемой Аланом Кэйем в исследовательском центре Xerox PARC. Первая реализация, известная как Smalltalk-71, была создана за несколько месяцев как результат спора о том что язык программирования, основанный на идее посылки сообщений, подсказанной Симулой, должен реализовываться на «странице кода». Более поздняя версия, действительно использованная для исследовательской работы, известна сейчас как Smalltalk-72. Его синтаксис и модель исполнения сильно отличались от современного Smalltalk, настолько, что его надо рассматривать как другой язык.
После существенных переработок, которые зафиксировали несколько сторон семантики выполнения для увеличения эффективности, была создана версия известная как Smalltalk-76. В этой версии добавились наследование, синтаксис более близкий к Smalltalk-80, и среда разработки включающую большинство инструментов знакомых сейчас Smalltalk-ерам.
В Smalltalk-80 были добавлены метаклассы, что делало фразу «всё — объекты» истинной путём связывания с индивидуальными классами свойств и поведения (например, поддержки различных способов создания экземпляров). Smalltalk-80 был первой версией, доступной за пределами PARC — сначала как Smalltalk-80 Version 1, розданный небольшому количеству компаний и университетов для «экспертной оценки». Позже, в 1983 году, были выпущены общедоступная реализация, известная как Smalltalk-80 Version 2 — в виде образа (независимый от платформы файл, содержащий объекты) и спецификации виртуальной машины.
Сейчас существует две реализации Smalltalk, являющиеся прямыми потомками Smalltalk-80 — Squeak и VisualWorks. Образ Smalltalk-80 version 2 запущен на Hobbes, виртуальной машине ST-80, реализованной на VisualWorks.
В Smalltalk, переменная - это именованный слот или место, в которое может быть помещен любой объект. Имя переменной должно начинаться с буквы, но в последствии, может содержать любые буквы, числа или символы подчеркивания.
Для структурного программирования достаточно использования следующих основных элементов и операторов:
Математические выражения включают операции
присваивания :=, сложения +, вычитания -, умножения *, деления /,
** возведение в степень,целочисленного деления //, \\ деление по модулю, возвращает остаток от деления. У операций умножения и деления более высокий приоритет, чем у операций сложения и вычитания.
Примеры:
300 + 400 "Сложение"
3.141926 - 3 "Вычитание"
365.25 * 24 "Умножение"
8766 // 24 "Деление целых чисел с отбрасыванием дробной части"
8766/24"Стандартное деление"
Язык Smalltalk использует точку (.), чтобы разделить отдельные выражения. Логические выражения
== — сравнение
~= — «НЕ», отрицание логического выражения (~=<логическое_выражение>)
& — «И», умножение (пересечение) логических выражений (<логическое_выражение1> &<логическое_выражение2>)
| — «|», объединение логических выражений (<логическое_выражение1> |<логическое_выражение2>) Комментарий - это просто текст, заключенный в двойные кавычки. "Пример комментапия"
Объектно-ориентированное программирование в Smalltalk используют
зарезервированные слова:
resWord
self
super
Все среды разработки Smalltalk имеют следующие утилиты/возможности:
• Workspace — окно, в котором можно ввести любой код и выполнить одно из следующий действий: Evaluate it — выполнить блок кода, Display it — выполнить и вывести результат, Inspect it — выполнить и просмотреть результат в отдельном окне Object Inspector.
• Inspector — позволяет просматривать внутреннее строение объекта: его значение, внутренние поля, индексированные поля для объектов с переменной длиной. Значения полей выводятся в окошке, аналогичном Workspace, в котором можно ввести любое выражение, нажать Accept, и полученное значение будет занесено в поле. Также для любого из полей можно вызвать отдельное окно Inspector.
• Class Browser — утилита, в которой, собственно, и происходит разработка приложений. Class Browser включает в себя три обязательных элемента (панели): иерархия всех классов в системе, список полей/методов выбранного класса, исходный текст выбранного метода. Еще методы могут быть разбиты на категории, что облегчает навигацию, но никак не влияет на их выполнение. Одновременно может быть открыто несколько окон Class Browser. Создавать приложения в нем значительно удобнее, чем при файловом представлении исходного кода, хотя поначалу это непривычно.
Этому также способствуют всевозможные функции поиска:
— найти класс по имени/шаблону;
— найти методы по имени/шаблону;
— найти методы, которые вызывают метод с заданным именем/шаблоном;
— найти методы, содержащие заданный текст, и т.д.
Существует также инструмент Method Finder, в котором через точку вводятся получатель, параметры, результат и выдается список методов, которые удовлетворяют заданному критерию. Например, зададим следующий критерий: "3 . 4 . 7". Тогда результатом по-иска будет список следующих методов класса SmallInteger: +, bitOr:, bitXor:.
• Debugger — также является основным инструментом разработки. Так как Smalltalk является динамическим языком, то в нем можно ввести синтаксически корректную конструкцию, которая вызовет ошибку во время выполнения из-за того, что в объекте-получателе не найден нужный метод.
На первый взгляд, это должно приводить к большому количеству ошибок, но практика показывает, что этого не происходит.
Дело в том, что подход к написанию программ в Smalltalk существенно отличается от традиционного.
Структура программы на Smalltalk имеет следующий вид:
|z x y a b c d| “объявляем переменные”
(Prompter prompt: ’Введите a’) asNumber].
a:= a asInteger.”Вводим a”
(Prompter prompt: ’Введите b’) asNumber].
b:= b asInteger.
x:=a+b.
(Prompter prompt: ’Введите c’) asNumber].
c:= c asInteger.
(Prompter prompt: ’Введите d’) asNumber].
d:= d asInteger.
x:=a+b.
y=c+d.
z:=x+y.
printInteger z. “вывод на экран значения z”
]
