- •Экзаменационный вопрос №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
Структура программы на языке Ruby
> ruby \\ вызываем командную строку компилятора
include Math \\ подключаем библиотеку для вычисления математических операций
a=1//задаем переменные
b=2
c=3
d=4
x=a+b \\ записываем условия выражения с присваиванием новых значений
y=c+d
z=x+y
puts z \\ выводим результат
^Z \\ заканчиваем программу этим символом
Экзаменационный вопрос № 27 История создания Action Script
Всё началось в 1993 году...
Джонатан Гай (Jonathan Gay) разработал программу, которое позволяло вводить информацию в компьютер, используя электронное перо вместо клавиатуры.
Назвал он это - SmartSketch.
В то время это было огромным достижением, однако программа не получила желаемой популярности и в связи с этим в 1995 году SmartSketch был переделан в программу для анимации.
В эти года рынок анимации был мизерным, анимационные ролики могли распространяться только на видеокассетах или компакт-дисках. В тоже время Джонатан заинтересовался интернетом и веб-дизайном и сделал ставку на то, что в скором времени интернет станет популярным и с его помощью люди начнут обмениваться анимацией и графикой.
И так новорождённую программу назвали FutureSplash Animator и попытались продать её очень известной компании Adobe, но сделка так и не состоялась. К FutureSplash был проявлен интерес только тогда, когда он был использован такими компаниями как Microsoft и Disney Online.
После чего в ноябре 1996 года команда Джонатана Гай`я присоединилась к компании Macromedia, в результате чего FutureSplash получил новое название «Macromedia Flash 1.0».
С выпуском 4 версии программы, во Flash появляется более-менее приемлемый скриптовый язык (ActionScript) и начинают появлятся первые сайты сделанные целиком во Flash.
С появлением 5 и 6 версий ActionScript становится всё мощнее и именно в это время начинается повсеместное применение flash в веб-дизайне.
С появлением в свет 7 версии Macromedia Flash, ActionScript переростает во вторую версию и теперь становится Объектно-ориентированным.
В 2005 году выходит долгожданная 8 версия Flash. Появляются новые возможности, такие как: создание фильтров (подобных фильтрам Photoshop), которые можно применять даже программно, что очень важно, появляются новые возможности работы со шрифтами и многое другое.
Тогда же в 2005 компанию Macromedia покупает Adobe за 3.5 млрд. долларов и с этого момента программа называется Adobe Flash.
Потом появляется Flash Professional 9 ActionScript 3.0 с принципиально новым AS 3.0. История пишется дальше...
Основные элементы языка ActionScript
Арифметические Операторы:
Умножение c * d
Деление c / d
Остаток c % d
Сложение c + d
Вычитание c - d
Операторы Сравнения:
Меньше чем c < d
Больше чем c > d
Меньше или равно c < =d
Больше или равно c > = d
Равно c == d
Не равно c != d
Побитовое И c &d
Побитовое исключающее ИЛИ c^d
Побитовое ИЛИ c | d
Логическое И c && d
Логическое ИЛИ c || d
Проверяется тип данных as
Проверяются свойства объекта in
Оператор выбора (условный оператор)
?: это экспресс-метод применения инструкции условного выбора if..else
инструкция if..else
Инструкция условия if..else позволяет проверить условие и выполнить блок программного кода, если это условие соблюдено, либо выполнить другой программный код, если условие нарушено. Например, в следующем программном коде проверяется, превышает ли x значение 20, создается функция trace(), если условие выполняется, или создается другая функция trace(), если это не так.
if (x > 20) { trace("x is > 20"); }
else { trace("x is <= 20"); }
Если не требуется выполнять альтернативный блок программного кода, можно использовать инструкцию if без инструкции else.
инструкция if..else if
Можно проверить больше одного условия, используя инструкцию условия if..else if. Например, в следующем программном коде не только проверяется, превышает ли x значение 20, но также проверяется, не является ли значение x отрицательным.
if (x > 20) { trace("x is > 20"); }
else if (x < 0) { trace("x is negative"); }
Оператор ветвления
switch
Инструкция switch полезна, если имеется несколько путей выполнения, которые зависят от одного выражения условия. При этом обеспечивается функциональность, сходная с несколькими последовательными инструкциями if..else if, но несколько более удобочитаемая. Вместо проверки условия для логического значения инструкция switch оценивает выражение и использует результат для определения того, какой блок программного кода следует выполнять. Блоки кода начинаются инструкциями case и заканчиваются инструкциями break. Например, в следующей инструкции switch печатается день недели, на основе номера дня, возвращаемого методом Date.getDay().
var someDate:Date = new Date();
var dayNum:uint = someDate.getDay();
switch(dayNum)
{ case 0: trace("Sunday"); break;
case 1: trace("Monday"); break;
case 2: trace("Tuesday"); break;
case 3: trace("Wednesday"); break;
case 4: trace("Thursday"); break;
case 5: trace("Friday"); break;
case 6: trace("Saturday"); break;
default: trace("Out of range"); break;
}
Циклы
for
Инструкция цикла for позволяет итеративно увеличивать переменную в определенном диапазоне значений. Необходимо передать в инструкцию for три выражения: переменную, установленную в качестве исходного значения; инструкцию условия, определяющую окончание цикла; а также выражение, которое изменяет значение переменной для каждого цикла. Например, в следующем программном коде цикл выполняется пять раз. Значение переменной i начинается с 0 и заканчивается 4, выходным значением будут числа от 0 до 4, каждое в своей строке.
var i:int;
for (i = 0; i < 5; i++)
{ trace(i); }
for..in
Инструкция цикла for..in выполняет итерации для свойства объекта или элементов массива. Например, можно использовать инструкцию цикла for..in для выполнения итераций со значениями свойства родового объекта (свойства объекта не сохраняются в определенном порядке, поэтому свойства могут появляться в кажущемся произвольном порядке).
var myObj:Object = {x:20, y:30};
for (var i:String in myObj)
{ trace(i + ": " + myObj[i]); }
// output:
// x: 20
// y: 30
Nакже можно выполнять итерацию по элементам массива.
var myArray:Array = ["one", "two", "three"];
for (var i:String in myArray)
{ trace(myArray[i]); }
// output:
// one
// two
// three
Чего нельзя делать, так это выполнять итерацию по свойствам объекта, если он является экземпляром определенного пользователем класса, если этот класс не является динамическим классом. Но даже с экземпляром динамического класса можно выполнять итерации только по свойствам, которые добавляются динамически.
for each..in
Инструкция цикла for each..in выполняет итерации по элементам коллекции, которые могут быть либо тэгами в объекте XML или XMLList, либо значениям, содержащимся в свойствах объекта, а также элементами массива. Например, как показывает следующая выборка, можно использовать цикл for each..in для итерации по свойствам родового объекта, но в отличие от цикла for..in, переменная-итератор в цикле for each..in содержит значение свойства вместо имени свойства.
var myObj:Object = {x:20, y:30};
for each (var num in myObj)
{ trace(num); }
// output:
// 20
// 30
Можно выполнять итерации по объектам XML или XMLList, как показано в следующем примере.
var myXML:XML = <users>
<fname>Jane</fname>
<fname>Susan</fname>
<fname>John</fname>
</users>;
for each (var item in myXML.fname)
{ trace(item); }
/* output
Jane
Susan
John
*/
Также можно выполнять итерации по элементам массива, как в следующем примере.
var myArray:Array = ["one", "two", "three"];
for each (var item in myArray)
{ trace(item); }
// output:
// one
// two
// three
Нельзя выполнять итерацию по свойствам объекта, если он является экземпляром запечатанного класса. Даже для экземпляров динамических классов нельзя выполнять итерации по каким-либо фиксированным свойствам, какими являются свойства, определенные как часть определения класса.
While
Цикл while работает аналогично инструкции if, выполняя повторения до тех пор, пока для условия выдается значение true. Например, в следующем программном коде получаются такие же результаты, что и в примере с циклом for.
var i:int = 0;
while (i < 5)
{ trace(i); i++; }
Одним из недостатков использования цикла while вместо цикла for является то, что неопределенные циклы проще писать с помощью циклов while. Пример программного кода с циклом for не компилируется, если пропущено выражение, которое инкрементально увеличивает переменную обратного счетчика, но цикл while не компилируется, если пропущен этот шаг. Без выражения, инкрементально увеличивающего переменную i, цикл становится неопределенным циклом.
do..while
Цикл do..while является циклом while, в котором гарантируется, что блок кода будет выполнен хотя бы один раз, поскольку условие проверяется после выполнения блока программного кода. В следующем программном коде показан простой пример цикла do..while, создающего выходные данные даже в случае несоблюдения условия.
var i:int = 5;
do { trace(i); i++; }
while (i < 5);
// output: 5
Спецификация языка оперирует понятием свойства объекта, называя методом использующуюся в качестве свойства объекта функцию.
Каждый объект в языке имеет следующие свойства:
Свойства объектов ECMAScript |
|
Название |
Краткое описание |
constructor |
Функция, использованная для создания объекта (в примерах выше это Object()) |
hasOwnProperty(propertyName) |
Показывает, существует ли данное свойство в объекте (не в его прототипе) |
isPrototypeOf(object) |
Определяет, находится ли объект в цепи прототипов объекта-аргумента |
propertyIsEnumerable(propertyName) |
Показывает, является ли свойство с данным названием перечислимым в цикле for-in |
toString() |
Возвращает представление объекта в виде строки |
valueOf() |
Возвращает значение this. Если же объект является результатом вызова конструктора объекта расширения, значение valueOf() зависит от реализации[Спецификация 2]. Зачастую в качестве возвращаемого значения выступает значение примитивного типа, соответствующее объекту. Как правило, результат данного метода совпадает с результатом toString(). Объекты, созданные с помощью конструктора Date() — яркий пример, где результатыtoString() и valueOf() не совпадают[39]. |
Список зарезервированных слов ActionScript:
break
extends
instanceof
static
case
for
interface
switch
class
function
intrinsic
this
continue
get
new
typeof
default
if
private
var
delete
implements
public
void
dynamic
import
return
while
else
in
set
with
Объектно-ориентированное программирование
Определения классов
В ActionScript 3.0 определения классов используют синтаксис, подобный тому, который использовался для определения классов в ActionScript 2.0. Правильный синтаксис для определения класса вызывает ключевое слово class, за которым следует имя класса. Тело класса, заключенное в фигурные скобки ({}), идет после имени класса. Например, следующий код создает класс с именем Shape, содержащий одну переменную visible.
public class Shape
{ var visible:Boolean = true; }
Одно значительное изменение в синтаксисе затрагивает определения классов, находящиеся внутри пакета. В ActionScript 2.0, если класс находится в пакете, имя пакета должно быть включено в объявление класса. В языке ActionScript 3.0, в котором вводится инструкция package, имя пакета должно быть включено в объявление пакета, а не в объявление класса. Например, следующие объявления классов показывают, как класс BitmapData, включенный в пакет flash.display, определяется в ActionScript 2.0 и ActionScript 3.0.
// ActionScript 3.0
package flash.display
{ public class BitmapData {} }
Атрибуты классов
ActionScript 3.0 позволяет изменять определения классов с помощью одного из четырех атрибутов.
Dynamic Позволяет добавлять свойства для экземпляров во время выполнения.
Final Не должен расширяться другим классом.
internal (по умолчанию) Видимый для ссылок внутри текущего пакета.
Public Видимый для всех ссылок.
\
