TURBO PASCAL |
Новости
|
ООП - это очень простоВыпуск № 1 Внутри каждой большой программы есть маленькая, которая там совсем не нужна. Уважаемые подписчики, начиная с этой рассылки я предлагаю Вам пройти путь создания и использования объекта в своей программе. Надеюсь, что удастся пройти этот путь под девизом, являющимся именем рассылки "ООП - это (не?) очень просто" :-)) В этом выпуске: ООП - это просто!Надеюсь, что Вам уже известно, что ООП - это аббревиатура от термина "объектно - ориентированное программирование". Так называется самая передовая до настоящего времени технология программирования. Она дает программисту очень многое. Во-первых, изменяется уровень понимания программы. Во-вторых, добавляются новые возможности. В-третьих, все современное программирование - только объектно-ориентированное. Хорошо написал Г. Буч в книге "ООА и ООП с примерами на С++" Объектно-ориентированное программирование - это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования. ... ООП использует в качестве базовых элементов объекты, а не алгоритмы Хорошо и ... не понятно. Вот и давайте разбираться постепенно. Но что получается? Я Вас за объекты агитирую! Вряд ли это нужно! По моим наблюдениям, все слышали о ООП, но многие просто боятся приступить к написанию объектов, а приступив, теряются в терминах (как только что). Так давайте убедимся, что ООП - это действительно, просто технология и нечего больше. Что будем писать?В предыдущей рассылке я приводил пример создания связанного списка. На его основе был создан динамический массив. Там же отмечалось, что эта конструкция небезопасна в использовании и предлагалось реализовать его в виде объекта. Я продолжу работу с этой конструкцией, по следующим причинам:
Но подбираться к ней, к простенькой, будем медленно. Путь предстоит неблизкий. По этой причине, хотелось бы знать Ваше мнение о происходящем. Все ли будет понятно? Может, что-то надо описать подробнее? Пишите Борису. Для срочных консультаций можно воспользоваться аськой. Мой ICQ: 320096696. А я начну. Сначала покажу, как объект защищается от неправильных действийВ качестве первого примера рассмотрим объект, который позволяет записать в значение переменной только положительное значение. Открываем среду разработки программ Borland Pascal (IDE BP) и начинаем вводить текст программы: ДА! А Вы знаете, как скопировать текст из окна любого редактора Windows в окно редактора Borland Pascal?
Теперь введите код, который приведен ниже. В программе описывается объект. Этот объект имеет одну переменную Field. В нее можно записать только неотрицательное целое число. А затем производится обычное тестирование. Описание объекта и программы приводится ниже: program Simplest; TYPE TSimplestObj = object private Field: Integer; public procedure SetValue(AValue: Integer); function GetValue: Integer; end; procedure TSimplestObj.SetValue; begin if AValue < 0 then Writeln('Введено неверное значение ',AValue); Field:=Abs(AValue); end; function TSimplestObj.GetValue; begin GetValue:=Field end; VAR SimplestObj: TSimplestObj; {То, что было описано раньше - фантом, то, что может быть, а может и не быть. Сейчас создается экземпляр объекта. Он уже может работать} BEGIN SimplestObj.SetValue(-2); {Получите сообщение об ошибке} SimplestObj.SetValue(2000); {Записали} WriteLn(SimplestObj.GetValue); {Прочитали} END. Пояснения. Создание объекта происходит в два этапа, и два этапа нужно пройти, чтобы объект использовать:
В чем фишка созданного? А Вы попробуйте добраться до переменной-поля Field, не используя методы объекта! Поэкспериментируйте, если времени не жалко. Защита полей или методов объекта от неправильного использования перенесением их в раздел private - это одна из задач, которая была решена изобретением объектов. Называется прием: инкапсуляция. Конечно, такую задачу можно решить и без использования объектов одними только подпрограммами. Но это будет нелегко. Обратите внимание на то, что поле Field является глобальным по отношению к методам SetValue и GetValue. Интересно, а Вы сможете предложить алгоритм защиты переменной без использования ООП? Следующую рассылку уже пишу. В нем покажу, как написать объект для работы со строками (ввод, вывод), но эти самые строки он пусть хранит в текстовом файле. Работая с программой, использующей такой объект, пользователь может и не подозревать о происходящих процессах, а просто удивляется "Почему так долго работает глупая программа?". Интересно, а вы сможете сами написать такое? Свой вариант покажу завтра. Пока ... Теперь немного познавательного: Знаете ли Вы, откуда появилась программа "Hello World" (В вольном переводе "Привет мир, я проклюнулся")"Hello World" - это простая программа, которая, когда ее запустят на исполнение, показывает сообщение Hello World Точнее, программа "Hello World" была первой программой почти всех начинающих программистов на мириадах языков программирования. Сотрудники ассоциации The Association for Computing Machinery (ACM) of Louisiana Tech подсчитали все примеры программ "Hello World", которые они смогли найти. Таких к настоящему времени нашлось 204. Для того, чтобы посмотреть пример программы "Hello World" на Паскале, прочитайте полное определение, щелкнув по ссылке ниже или открыть любой учебник. Никто не знает точно, почему именно "Hello World" выдержала испытание временем. Наиболее вероятно простое объяснение, что такая короткая программа позволяет программисту убедиться, что языковой компилятор, среда разработки программ и окружение установлены правильно. Для первой проверки окружения и была использована очень простая программа. Согласно Wikipedia , традиция использовать фразу "Hello World" в качестве тестового сообщения была навеяна программой-примером в книге Браена Карнигана и Денниса Ричи (Brian Kernighan and Dennis Ritchie) "The C Programming Language" (Язык программирования С). Примечание переводчика: скачать книгу можно, например, на http://asmcpp.narod.ru/dounloads-x.htm Данное описание является переводом текста, опубликованного THE_WHATIS.COM WORD-OF-THE-DAY. Полное определение можно
найти по адресу
http://searchvb.techtarget.com/sDefinition/0,,sid8_gci927707,00.html?track=NL-34 © 2003 Борис Сурин |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |