УРОК 4
Языки программирования.
При разработке компьютерной модели после составления алгоритма следует написание программы. Для этого используется какой-либо язык программирования.
История возникновения систем программирования.
История программ начинается с далеких 20-х годов 19 века, когда английский исследователь Ч. Бэбидж выдвинул идею о предварительной записи действий вычислительной машины.
|
До появления вычислительных машин делались попытки управлять ткацкими станками. Программы для станков записывались на перфокарты, которые были придуманы Чарлзом Бэбиджем и французским изобретателем Жозефом Жаккаром. С этих первых программ началась история программирования, несколько позднее стали закладываться теоретические основы этой науки. Вместе с Бэбиджем работала его современница Ада Лавлейс (дочь великого английского поэта Джорджа Байрона), которую называют первым в мире программистом. Она ввела в науку о программировании термины и понятия, которые применяются и по сей день (например, понятие цикла – важнейшей структуры любого современного языка программирования).
В 20 веке появились электронные вычислительные машины. Первые программы, которые составлялись для них, записывались в машинных кодах. Программист, чтобы написать правильную программу, должен был в деталях представлять себе работу ЭВМ. Это сильно затрудняло общение человека с компьютером, поэтому программисты стали серьезно задумываться над кодированием программ. Они пришли к выводу, что программа должна составляться на языке, более доступном человеку, чем язык машинных команд. Возникла необходимость в создании языков программирования.
Язык программирования – это искусственный язык для написания команд, выполняемых вычислительной машиной. Язык программирования состоит из фиксированного словаря и совокупности правил (синтаксиса) написания команд.
Все множество языков программирования можно разделить на две группы: языки низкого уровня и языки высокого уровня.
Языки, близкие к числовому коду процессора, называют языками низкого уровня, а языки, удобные для человека, - языками высокого уровня.
Язык самого низкого уровня - язык машинного кодирования. К языкам низкого уровня также относятся языки ассемблера (от англ. to assemble — собирать, компоновать). В языке ассемблера используются символьные обозначения команд, которые легко понятны и быстро запоминаются. Вместо последовательности двоичных кодов команд записываются их символьные обозначения, а вместо двоичных адресов данных, используемых при выполнении команды, — символьные имена этих данных, выбранные программистом. Иногда язык ассемблера называют мнемокодом или автокодом.
Все прочие языки программирования являются языками более высокого уровня, чем язык Ассемблера. Языки высокого уровня стали появляться уже с середины 50-х годов. Одним из первых языков такого типа стал язык Фортран (англ. FORTRAN от FORmula TRANslator — переводчик формул). Так же, как и первые вычислительные машины, этот язык предназначался, в основном, для проведения естественнонаучных и математических расчетов. В усовершенствованном виде этот язык сохранился до настоящего времени. Среди современных языков высокого уровня он является одним из наиболее используемых при проведении научных исследований.
После Фортрана в 1957 году появился язык Алгол (англ. ALGOL от ALGOrithmic Language — алгоритмический язык). Этот язык так же, как и Фортран, предназначался для решения научно-технических задач. Кроме того, этот язык применялся как средство обучения основам программирования.
В гг. был разработан язык Кобол (англ. COBOL от СОттоп Business Oriented Language – общий язык, ориентированный на бизнес). Этот язык предназначался для решения экономических задач, обработки данных для банков, страховых компаний и других учреждений подобного рода.
Почти одновременно с Коболом ( гг.) в Массачусетском технологическом институте был создан язык Лисп (англ. LISP от LISt Processing – обработка списков). Этот язык широко используется для обработки символьной информации и применяется для создания программного обеспечения, имитирующего деятельность человеческого мозга.
В середине 60-х годов (1966г.) в Дартмутском колледже (США) был создан язык Бейсик (англ. BASIC от Beginner's All-purpose Symbolic Instruction Code — всецелевой символический код инструкций для начинающих). В основу Бейсика был положен язык Фортран.
В конце 60-х – начале 70-х гг. появился язык Форт (англ. FOURTH* — четвертый). Этот язык стал применяться в задачах управления различными системами после того, как его автор Чарльз Мур написал на нем программу, предназначенную для управления радиотелескопом Аризонской обсерватории.
Появившийся в 1971 году язык Паскаль был назван так в честь великого французского математика XVII века, изобретателя первой в мире арифметической машины Блеза Паскаля. Этот язык был создан швейцарским ученым, специалистом в области информатики Никлаусом Виртом как язык для обучения методам программирования.
На основе языка Паскаль в конце 70-х гг. был создан язык Ада, названный в честь одаренного математика Ады Лавлейс (дочери поэта Байрона). Именно она в 1843 году смогла объяснить миру возможности Аналитической машины Чарльза Бэббиджа. Язык Ада был разработан по заказу Министерства обороны США и первоначально предназначался для решения задач управления космическими полетами. Этот язык применяется в задачах управления бортовыми системами космических кораблей, системами обеспечения жизнедеятельности космонавтов в полете, сложными технологическими процессами.
В настоящее время популярным среди программистов является язык Си (С – буква английского алфавита), созданный в 1972 году Деннисом Ритчи. Первоначально язык Си предназначался для написания программ операционной системы UNIX. И операционная система UNIX, и ее прикладные программы написаны на языке Си.
Еще один язык был создан в начале 70-х гг. группой специалистов Марсельского университета. Это язык Пролог. Свое название он получил от слов «Программирование на языке ЛОГики». В основе этого языка лежат законы математической логики. Как и язык Лисп, Пролог применяется, в основном, при проведении исследований в области программной имитации деятельности мозга человека. В отличие от описанных выше языков, этот язык не является алгоритмическим. Он относится к так называемым дескриптивным (от англ. descriptive — описательный) — описательным языкам. Дескриптивный язык не требует от программиста разработки всех этапов выполнения задачи.
В последние десятилетия в программировании возник и получил существенное развитие объектно-ориентированный подход. Это метод программирования, имитирующий реальную картину мира: информация, используемая для решения задачи, представляется в виде множества взаимодействующих объектов. Каждый из объектов имеет свои свойства и способы поведения. Взаимодействие объектов осуществляется при помощи передачи сообщений: каждый объект может получать сообщения от других объектов, запоминать информацию и обрабатывать ее определенным способом и, в свою очередь, посылать сообщения. Так же, как и в реальном мире, объекты хранят свои свойства и поведение вместе, наследуя часть из них от родительских объектов.
Объектно-ориентированная идеология используется практически во всех современных программных продуктах, включая операционные системы.
Первый объектно-ориентированный язык Simula-67 был создан как средство моделирования работы различных приборов и механизмов. Большинство современных языков программирования — объектно-ориентированные. Среди них последние версии языка Turbo Pascal, C++, Ada и др. В настоящее время широко используются системы визуального программирования Visual Basic, Visual C++, Delphi и др. Они позволяют создавать сложные прикладные пакеты, обладающие простым и удобным пользовательским интерфейсом.
Понятие программы
Процесс работы компьютера заключается в выполнении программы, т. е. выполнении набора вполне определенных команд во вполне определенном порядке.
Программа – (от греч. προ — пред, греч. γράμμα — запись) термин, в переводе означающий «предписание», то есть предварительное описание предстоящих событий или действий.
Компьютерная программа – последовательность инструкций, предназначенная для исполнения устройством управления вычислительной машины.
Программа – один из компонентов программного обеспечения. Другие определения программы:
Программа – данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определённого алгоритма.
Программа – представленная в объективной форме совокупность данных и команд, предназначенных для функционирования ЭВМ и других компьютерных устройств с целью получения определённого результата.
В системном программировании существует более формальное определение программы как размещённых в оперативной памяти компьютера данных и машинных кодов, исполняемых процессором для достижения некоторой цели.
Программа записанная в текстовом редакторе называется исходным кодом (текстом). Этот код состоит из специальных команд-операторов языка программирования. С помощью переводчика-транслятора исходный код программы преобразуется в машинный код. Сам процесс составления программ называется программированием.
Процесс разработки программного обеспечения состоит из нескольких этапов, из которых в узком смысле лишь непосредственное создание программного кода носит название «программирование». В быту под программированием часто подразумевается весь процесс разработки ПО, а людей, занимающихся этим видом деятельности, называют программистами.
Чаще всего образ программы хранится в виде исполняемого модуля (отдельного файла или группы файлов). Из этого образа, находящегося, как правило, на диске, исполняемая программа загружается в оперативную память с помощью программы-загрузчика, а далее обрабатывается процессором.
Интегрированная среда программирования
Современные языки программирования – это не только язык программирования. Языки программирования как программные продукты комплектуются инструментами для создания программ. Такой комплект называется интегрированной средой программирования. Он предназначен не только для облегчения процесса составления программ, но и для профессиональной разработки приложений. В состав интегрированной среды программирования входят, как правило, следующие компоненты:
– текстовый редактор – это программа, позволяющая создавать, изменять и обрабатывать исходные тексты программ на языках высокого уровня.
– язык программирования с компилятором;
– компоновщик предназначен для связывания между собой объектных файлов, порождаемых компилятором, а также файлов библиотек, входящих в состав системы программирования;
– система устранения синтаксических ошибок; пошаговый отладчик;
– библиотека готовых к использованию программных модулей;
– справочная система по вопросам разработки программ в данной среде.
Примерами интегрированных сред программирования являются Turbo Pascal, Delphi, Visual Basic и множество других. Использование этих сред при разработке приложений позволяет пользователям прикладывать гораздо меньше усилий, чем при написании программ с помощью языков более низкого уровня.
Создание программы начинается с составления алгоритма, ориентированного на определенную среду программирования. Алгоритм перекладывается на язык программы и вводится с клавиатуры в окне текстового редактора. После того как вы набрали с клавиатуры текст и исправили в нем ошибки, нужно отправить программу «на тестирование». При этом автоматически будет запущено еще одно средство из состава среды программирования - это отладчик (по-английски - debugger). Отладчик проверит текст с точки зрения синтаксиса, предложит вам исправить найденные ошибки. Программист с помощью отладчика может также просмотреть и изменить содержимое ячеек памяти компьютера.
Отлаженную программу можно запускать на исполнение. Переводом текста программы на машинный язык займется известное уже вам средство - транслятор. Ему будет помогать компоновщик (linker), задачей которого является поиск и компоновка разрозненных модулей и библиотек, которые необходимы для исполнения программы.
Интегрированная среда программирования обеспечивает диалоговое взаимодействие с пользователем на всех этапах составления и исполнения программы. Среда программирования сконструирована таким образом, чтобы пользователю были доступны все возможные инструменты программирования, и он чувствовал себя комфортно. Интегрированную среду программирования называют также инструментальной оболочкой.
Структура современной системы программирования
Системой программирования будем называть весь комплекс программных средств, предназначенных для кодирования, тестирования и отладки программного обеспечения. Нередко системы программирования взаимосвязаны и с другими техническими средствами, служащими целям создания программного обеспечения на более ранних этапах жизненного цикла (от формулировки требований и анализа до проектирования).
На рисунке приведена общая структура современной системы программирования. На ней выделены все основные составляющие современной системы программирования и их взаимосвязь. Отдельные составляющие разбиты по группам в соответствии с этапами развития средств разработки. Эти группы отражают все этапы развития от отдельных программных компонентов до цельной системы программирования.
Компиляторы и интерпретаторы
Компьютер понимает только машинные коды (т. е. код команды, состоящий из нулей и единиц), которые указывают, какое именно действие должен выполнить ЦП.
Значит, чтобы задать компьютеру последовательность действий, которые он должен выполнить, нужно задать последовательность двоичных кодов соответствующих команд. Программы в машинных кодах состоят из тысяч команд. Писать такие программы – занятие сложное и утомительное. Программист должен помнить комбинацию нулей и единиц двоичного кода каждой команды, а также двоичные коды адресов данных, используемых при ее выполнении.
Поскольку компьютеры не умеют понимать ничего другого, кроме кодов машинных команд, то возникла необходимость в появлении «переводчиков» с различных языков программирования на язык машинных кодов. Такими переводчиками и стали трансляторы. Кстати, и само слово «транслятор» в переводе с английского означает не что иное, как «переводчик». Трансляторы бывают двух видов: компиляторы и интерпретаторы.
Компилятор — эта программа, предназначенная для перевода программы, написанной на каком-либо языке, в программу в машинных кодах. Процесс такого перевода называется компиляцией.
Компилятор создает законченный результат – программу в машинных кодах. К полученному коду подключаются стандартные процедуры, использованные программистом. В результате получается работающая программа – ее называют рабочим кодом. Файлы таких программ имеют расширение. ехе или. com и представляют собой машинный код. Откомпилированный вариант исходной программы можно сохранить на носителе информации. Для повторного выполнения исходной программы компилятор уже не нужен. Достаточно загрузить с диска в память компьютера откомпилированный в предыдущий раз вариант и запустить его на выполнение.
Существует другой способ сочетания процессов трансляции и выполнения программы. Суть процесса состоит в следующем. Вначале переводится в машинные коды, а затем выполняется первая строка программы. Когда выполнение первой строки окончено, начинается перевод второй строки, которая затем выполняется, и т. д. Такой процесс называется интерпретацией. Управляет процессом интерпретации программа-интерпретатор.
Интерпретатор — это программа, предназначенная для построчных трансляции и выполнения исходной программы.
В процесс трансляции входит проверка исходной программы на соответствие правилам используемого в ней языка. Если в программе обнаружены ошибки, транслятор выводит сообщение о них на устройство вывода (обычно, на экран дисплея). Интерпретатор сообщает о найденных им ошибках после трансляции каждой строки программы. Это значительно облегчает процесс поиска и исправления ошибок в программе, однако существенно увеличивает время трансляции. Компилятор транслирует программу намного быстрее, чем интерпретатор, но сообщает о найденных им ошибках после завершения компиляции всей программы. Найти и исправить ошибки в этом случае труднее. Поэтому интерпретаторы рассчитаны, в основном, на языки, предназначенные для обучения программированию, и используются начинающими программистами. Большинство современных языков предназначены для разработки сложных пакетов программ и рассчитаны на компиляцию.
Иногда один и тот же язык может использовать и компилятор, и интерпретатор. Как правило, программы-компиляторы и интерпретаторы называются так же, как и языки, для перевода с которых они предназначены.
Чтобы лучше понять отличие между компилятором и интерпретатором, приведем сравнение. Работа программы компилятора похожа на работу литературного переводчика, который сначала прочитывает текст, анализирует его, а затем выполняет перевод. Работу программы интерпретатора можно сравнить с работой синхронного переводчика, который выполняет перевод сразу по мере озвучивания текста. Конечно, литературный перевод будет лучше, чем перевод синхронный. Аналогично код, полученный при компиляции, будет более компактным и эффективным, чем код интерпретатора. В результате откомпилированные программы могут работать в десятки раз быстрее, чем выполняемые под управлением интерпретатора. Кроме того, компиляторы во время своей работы занимают меньшую часть ресурсов компьютера. Также программы-интерпретаторы всегда требуют для своей работы исходный код.
Таким образом, компиляторы – более эффективные переводчики программ. Поэтому все прикладные и служебные программы поставляются в откомпилированном виде.
В случаях, когда время исполнения программы не слишком критично, например, при обучении или решении частных задач, удобно использовать интерпретируемый язык. Простейший и наиболее распространенный из них – это язык программирования Basic. Другими примерами являются интерпретируемые языки JavaScript и VBScript, которые широко используются при создании Web-страниц, доступных через Интернет.
Алфавит и синтаксис языка программирования
Пользователь может легко работать с языками программирования высокого уровня благодаря тому, что они напоминают естественные языки общения. Во-первых, в языках программирования используется почти тот же алфавит, например, латинские буквы a, b... z и арабские цифры 0,1А во-вторых, многие слова выглядят, как команды, отдаваемые машине: PRINT («печатай»), DO («сделай»), READ («читай»), INPUT («введи») и т. д. Отличие языков программирования от естественного языка заключается в том, что количество возможных слов значительно меньше, чем в естественном языке, и слова могут употребляться лишь в определенной форме, порядке и в определенных сочетаниях.
Таким образом, языки программирования имеют свой алфавит и фиксированный словарь, а также определенные правила (синтаксис), которые используются при написании команд. Алфавит составляется обычно из латинских букв, например, в Бейсике все буквы пишутся, как прописные (A, B...Z), а в Паскале возможно использование как строчных (a. b...z), так и прописных букв. В алфавит обязательно входят цифры 0, 1, ..., 9, знаки арифметических операций (+, - и др.), знаки логических операций (not, and, or и др.), знаки операций сравнения (=,<,> и др.), а также специальные символы (скобки, разделители и т. д.).
Синтаксис - это система правил, по которым из символов образуются конструкции языка программирования.
Семантика (в программировании) – система правил определения поведения отдельных языковых конструкций.
Семантика определяет смысловое значение предложений алгоритмического языка.
Само слово синтаксис происходит от греческого δυνταζιζ (строение) и обозначает правила построения компонентов языка: слов, операторов, команд. Так, символы в слове нельзя опускать или менять местами. Если написать служебное слово begin как begn или beign, это будет считаться ошибкой.
Программы и события
Простые программы работали по классической схеме. Главный принцип такого (процедурного) программирования – основная программа выполняется строчка за строчкой, вызывая процедуры и функции, все ветвления выполняются с помощью условных операторов.
Этот подход хорошо подходит для простых задач, где последовательность операций известна заранее. Однако, в некоторых задачах порядок действий определяется пользователем, другими программами или поступлением новых данных из другого источника (например, из сети), поэтому классическая схема не работает.
Так при работе в текстовом редакторе пользователь может щелкать по любым кнопкам и выбирать любые пункты меню в произвольном порядке. Программа-сервер, передающая данные с Web-сайта на компьютер пользователя, начинает действовать только при поступлении очередного запроса. При программировании сетевых игр нужно учитывать взаимодействие многих объектов, информация о которых передается по сети в случайные моменты времени.
Во всех этих примерах программа должна «включаться в работу» только тогда, когда получит условный сигнал, то есть произойдет некоторое событие (изменение состояния). При этом программа должна «знать», как реагировать на нужное ей событие, то есть должна иметь обработчик этого события – процедуру специального типа.
На следующем рисунке показана схема работы программы, основанной на событиях:

Основная программа обычно содержит всего несколько строк (файлов), ее задача — сделать все начальные установки и сообщить операционной системе адрес процедуры обработки сообщений. В эту процедуру будут направляться все сообщения, предназначенные данной программе: информация о действиях пользователя, а также сообщения операционной системы (например, сигналы таймера).
Получив сообщение от операционной системы, процедура обработки сообщений «разбирается» с ним: вызывает обработчик этого сообщения, если он существует. Если такого обработчика нет, программа никак не реагирует на полученное сообщение.
Написание программ для операционной системы Windows в первые годы ее существования было довольно сложным и утомительным делом. Самое главное — очень много усилий уходило на то, чтобы написать команды для создания интерфейса с пользователем: разместить элементы в окне программы, написать и правильно оформить обработчики сообщений. То есть, значительную часть своего времени программист занимался совершенно «тупой» работой, которая почти никак не связана с решением главной задачи. Поэтому возникла естественная мысль – поручить всю рутинную работу компьютеру так, чтобы интерфейс можно было построить с помощью мыши, а человек думал главным образом о сути задачи, то есть об алгоритмах обработки информации. Такие системы получили название RAD (Rapid Application Development — быстрая разработка приложений).
Одной из первых сред быстрой разработки стала Delphi, разработанная фирмой Borland. Другая популярная система быстрой разработки — Microsoft Visual Studio для программирования на языках Visual Basic .NET, Visual C++ и Visual C#.
Разработка программы в среде RAD состоит из следующих этапов:
создание формы (окна); при этом минимальный код строится автоматически и сразу получается работоспособная программа; расстановка на форме элементов интерфейса (поля ввода, кнопки, списки) с помощью мыши; создание обработчиков событий двойным щелчком мыши, минимальный код также строится автоматически; написание кода обработчиков, который реализует нужные алгоритмы обработки данных.Среды RAD позволили существенно сократить время разработки программ. Однако нужно помнить, что любой инструмент – это только инструмент, который можно использовать грамотно и безграмотно. Использование среды RAD не гарантирует, что у вас автоматически получится хорошая программа с хорошим пользовательским интерфейсом.
Объекты и классы
Постановка серьезной задачи практически никогда не содержит описания переменных и массивов, которые надо использовать. Напротив, большинство реальных задач формулируется как описание поведения объектов, например при компьютерном моделировании сложных систем.
В конце 80-х годов XX века программирование оказалось в достаточно серьезном кризисе. Главная проблема состояла в том, что сложность программ стала «превышать возможности человеческого интеллекта». Одному человеку стало не под силу охватить разумом все аспекты сложной программы.
Выходом из кризисной ситуации стал подход, основанный на понятии объекта. Новая идея заключалась в том, чтобы разбить сложную систему на части-объекты и попытаться понять и совершенствовать каждую часть в отдельности, независимо от других. При этом разработку каждого объекта можно поручить отдельному человеку. Такой подход называют объектно-ориентированным программированием.
Объект — некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеет заданные значения свойств (атрибутов) и операций над ними (методов).
Если сказать проще,
Объект – совокупность (набор) свойств, методов, событий. Это значит, что объект как бы состоит из методов, свойств и событий, и они обеспечивают его полноценную работу.
Представим себе кнопку. Она обладает:
· свойствами (цвет, текст на кнопке, шрифт текста и т. д.);
· событиями (события пользовательского ввода, например, нажатие на кнопку);
· методами (обеспечивающими работу кнопки, например, метод прорисовки текста, прорисовки фокуса и т. д.).
Если все это объединить, то получается автономный объект, который может работать в различных условиях. В этом случае достаточно только установить кнопку на форме, и она уже готова к применению.
Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам, которые в свою очередь определяют поведение (являются моделью) объекта. Время с момента создания объекта (конструкция) до его уничтожения (деструкция) называется временем жизни объекта.
Свойства – это какие-то данные (переменные, параметры), которые характеризуют объект, которые мы может наблюдать, (возможно) изменять, и которые влияют на состояние объекта.
Например, если Васю Пупкина рассматривать как объект, то его свойства — это рост, вес, цвет глаз, характер, прическа и т. п. Свойства объекта-автомобиля — это его марка, цвет, объем двигателя, год выпуска.
Методы – это команды, которые объект понимает и может выполнять, причем в документации на объект сказано, как именно он реагирует на эти команды (это действия, которые можно произвести с объектом).
Например, автомобиль реагирует на нажатие педалей, поворот руля, переключение скоростей.

Методы – это те же процедуры и функции, т. е. это то, что объект умеет делать (вычислять). Например, объект может иметь процедуру для вывода какого-то текста на экран. Эта процедура и есть метод, который принадлежит объекту.
События - это действия, которые происходят с объектом.
События – это те же процедуры и функции, которые вызываются при наступлении определенного события. Например, если изменилось какое-то свойство объекта, может быть сгенерировано соответствующее событие и вызвана процедура, которая инициализирует реакцию приложения на это событие.
Пример:
Объект "телефон"
![]() |
Свойства: | Методы: | События: |
цвет | снять трубку | звонок |
размер | набрать номер | длинный гудок |
расположение | передвинуть телефон | короткий гудок |
вес | ||
объем |
Мы ничего не знаем о том, как устроен объект внутри. Для нас это, как говорят кибернетики, «черный ящик». Но самое главное – для того, чтобы работать с объектом, нам и не нужно знать его внутреннее устройство! Достаточно, что мы можем узнать и изменить его свойства, а также применять доступные методы управления.
Свойства и методы представляют собой интерфейс объекта, то есть способ его общения с внешним миром. Мы можем сколько угодно переделывать «внутренности» объекта, сохраняя интерфейс, и при этом оставшуюся часть программы переделывать не придется, потому что с «внешней» стороны (для наблюдателя) объект никак не изменился.
Теперь рассмотрим работу свойств, методов и событий как единого целого. И снова для примера возьмем объект — кнопку. Такой объект должен обладать следующим минимальным набором.
Ø Свойства:
• левая позиция (X);
• верхняя позиция (Y);
• ширина;
• высота;
• заголовок;
Ø Методы:
• создать кнопку;
• уничтожить кнопку;
• нарисовать кнопку;
Ø События:
• кнопка нажата;
• заголовок кнопки изменен.
Объект работает как единое целое. Например, вы изменили заголовок кнопки. Объект генерирует событие "заголовок кнопки изменен". По этому событию вызывается метод "нарисовать кнопку". Этот метод рисует кнопку в позиции, указанной в свойствах объекта, и выводит на кнопке новый текст, указанный в свойстве "заголовок".
У каждого объекта обязательно присутствуют два метода: "создать объект" и "уничтожить объект". Во время создания объекта происходит выделение памяти для хранения необходимых свойств, и заполняются значения по умолчанию. Во время уничтожения объекта происходит освобождение выделенной памяти.
Примечание
Метод для создания объекта называется конструктором (constructor). Метод для уничтожения объекта называется деструктором (destructor). Сам процесс создания объекта называется инициализацией.
Теперь рассмотрим, использования нашей кнопки. Он выглядит следующим образом:
1. Создание кнопки с помощью вызова метода "создать кнопку".
2. Изменение необходимых свойств.
Все. Наша кнопка готова к работе.
Объект – сложный тип данных. Это значит, что вы можете объявлять переменные типа "объект" (точно так же, как объявлялись переменные типа "число" или "строка") и обращаться к объекту через эту переменную.
На языке программирования это будет выглядеть немного сложнее:
1. Объявить переменную типа "кнопка".
2. В эту переменную проинициализировать объект.
3. Изменить нужные свойства
4. Можно использовать объект.
Классы и наследование
В любой науке очень важна классификация объектов, с которым она имеет дело. Это означает, что все объекты разбиваются на группы, обладающие общими свойствами. Например, в биологии эти группы называются царство, тип, класс, отряд, семейство, род и вид.
В программировании класс – это описание общих свойств и методов группы объектов. Каждый объект (экземпляр) класса обладает всеми свойствами и поддерживает все методы этого класса.
Например, класс Собака может описывать все общие свойства, присущие собакам, Жучка, бегающая во дворе, — это экземпляр или объект класса Собака.
Человек часто использует многоуровневую (иерархическую) классификацию. Например, попугай какаду относится к царству Животные, типу Хордовые, подтипу Позвоночные, классу Птицы и отряду Попугаеобразные (рисунок справа). Это значит, что Хордовые обладают всеми признаками Животных (и могут иметь свои собственные!), все Позвоночные имеют все свойства Хордовых и т. д. Можно сказать, что каждый следующий уровень наследует все признаки предыдущего (более высокого) уровня.
В программировании нет царств, отрядов, подтипов и пр., вместо них используется одно понятие класс. Но класс B может наследовать свойства другого (базового) класса A, при этом все экземпляры класса B будут иметь все свойства и поддерживать все методы базового класса A. Кроме того, объекты класса B могут иметь новые свойства и методы, которых не было в классе A.




