Как сделать листинг программы
Как сделать листинг и описание кода?
простейшее консольное прога на дискриминант. как делать ЛИСТИНГ и описание кода? подскажите пожалуйста народ
Описание программного кода
Ребята, выручайте, необходимо описать эту программу(желательно каждую в ней строку) using.
Как сделать листинг программы?
Подскажите как сделать листинг программы. Написал программу а теперь надо сделать листинг и.
Получить ассемблерный листинг из кода на с++
Здравствуйте! Требуется написать программу на ассемблере, которая бы занималась неким.
А чему уравнение то равно? Y где?
Добавлено через 1 минуту
http://www.kvadur.info/
Думаю, нужно просто описать условия от A и D и не трогать остальное.
Где A не равно 0.
Если D > 0, то уравнение имеет два различных вещественных корня.
Если D = 0, то оба корня вещественны и равны.
Если D 0
Добавлено через 4 минуты
Woldemar89, т.е убрать строки 22-29?
Я хз, я бы так сделал, если что сильно не ругай, пятница все-таки
а как насчет описания. просят написать описание можете скинуть ссылку где в кратце можно найти информацию что делают определенные методы и т.п
Догадался посчет ошибок ) Преподаватель тупо меня завалил. видимо вбил в место цифр буковки вшатал и глумился подоНОК
Добавлено через 1 минуту
Ок щас попробую
Добавлено через 1 минуту
По мне, когда-то, самое обидное было когда защита от дурака занимала больше, чем сама лаба..
namespace уравнение // namespace — мы определяем для программы собственное пространство имен с именем уравнение.
<
class Program //Класс — это основная организационная структура объектно-ориентированных языков типа C#. Все ваши операторы должны находиться внутри определения какого-либо класса. Невозможно написать какой-либо оператор вне класса. Проще всего сказать, что класс — это совокупность данных и связанного с ним кода. Определение класса заключается в фигурные скобки.
<
static void Main(string[] args)// Функция Main является точкой входа в программу, с которой начинается ее выполнение. Ключевое слово void указывает, что функция ничего не возвращает. Функция Main принимает параметр в виде массива строк с именем args. Данный параметр имеет смысл, когда мы запускаем приложение и передаем ему в командной строке какие-либо параметры, которые затем передаются приложению в массиве args.
«Информация возможна не верна»
Добавлено через 4 минуты
Woldemar89, вообщем главная проблема в том что я не могу описать действия кода че оно делает в той или и ной момент и т.п Нешарю в C# юзать начал неделю назад
От текста к листингу
Публикации на околокомпьютерную тематику нередко сопровождаются фрагментами программ, макросами и прочими листингами, содержащими текст на каком-нибудь языке программирования. Так уж сложилось, что для оформления листингов программ используется моноширинный шрифт, то есть шрифт, каждый символ которого имеет одинаковую ширину. В операционной системе Windows включен моноширинный шрифт Courier New Cyr, но вы можете применять и другие.
Для оформления листинга ничто не мешает в текстовом документе выделить часть текста, а затем изменить шрифт. Этому и будет посвящена новая статья цикла, посвященная макросам Microsoft Office. Заметим, что процедура оформления программ может быть решена тремя способами: с помощью соответствующих настроек панелей инструментов или создания макроса. Первый способ достаточно прост, однако не обеспечивает должной функциональности, два другие способа оформления документа подразумевают использование макросов на Visual Basic for Application.
Рис. 1. Для того чтобы оформить листинг программы в тексте, следует воспользоваться моноширинным шрифтом Courier New.
Обойдемся пока без макросов
Задача форматирования выделенного фрагмента текста несложна и можно обойтись без макроса. Однако постоянно раскрывать список со шрифтами, выбирать в нем шрифт Courier New — операция, требующая по меньшей мере трех действий: щелкнул, прокрутил список и снова щелкнул. Word, благодаря средствам конфигурирования панелей, позволяет уменьшить число действий до одного. Для создания панели вам нужно выполнить следующие действия:
1. Активизируйте режим настройки панелей.
2. Нажмите кнопку Создать и определите название новой панели инструментов, например Листинг.
3. Перейдите на вкладку Команды. В списке Категории найдите строку Шрифты, а в списке Команды — шрифт Courier New. Переместите команду в панель инструментов и настройте при необходимости ее свойства, например, надпись, вид, значок и др.
4. Созданную панель инструментов можно протестировать, для чего выделите любой фрагмент текста и щелкните по недавно созданной кнопке. Текст будет отформатирован с помощью шрифта Courier New Cyr.
Запись макроса для форматирования текста
Существуют и другие способы форматирования фрагмента текста как листинга программы. Они подразумевают применение макросов. Word, равно как и другие приложения Microsoft Office, позволяют запоминать любые команды меню и панелей инструментов в виде макроса. По своей сути, созданный макрос мало отличается от кнопки панели инструментов, но, быть может, он покажется вам более удобным.
1. Выберите в меню команду Сервис — Макрос — Начать Запись.
2. В появившемся окне задайте имя макроса, а также способ его последующего вызова. Word позволяет связать макрос с панелью инструментов или с функциональными клавишами.
3. В режиме записи вам следует указать шрифт Courier New, а затем щелкнуть по кнопке Остановить запись.
4. Никаких внешних изменений с программой Word не произойдет, но если вы нажмете клавиши Alt-F11, а затем раскроете созданный вами макрос, то на экране появится программа на Visual Basic for Application.
5. Дальнейшие шаги по форматированию документа вам уже известны: вы выделяете фрагмент текста и щелкаете по кнопке панели инструментов или нажимаете горячую клавишу, шрифт текста автоматически изменяется.
Рис. 2. В режиме записи макроса вы можете указать название макроса, клавишу или кнопку панели инструментов, которая исполняет макрос, а также при необходимости задать описание макроса. Непосредственно во время записи Word запоминает все используемые вами команды и преобразует их в соответствующие операторы языка Visual Basic for Application.
Что будет содержать программа
Следует заметить, что генерируемый Word макрос напрямую зависит от ваших действий. Если вы в режим записи макроса установите шрифт Courier New посредством панели инструментов, то в макросе появится программа, состоящая всего из двух строчек (см. рис. 3).
Но если вы воспользуетесь командой меню Формат — Шрифт и укажите в диалоговом окне шрифт Courier New, размер шрифта 10, а также какие-то дополнительные опции, то Word запомнит все измененные параметры шрифта и запишет их в виде макроса, представленного на рис. 4.
Рис. 3. Созданный Word макрос может иметь различные операторы. Так, если вы отформатировали текст с помощью панели инструментов, то в макросе, не считая комментариев, появится всего две строки.
Сложное форматирование листинга программы
Третий способ форматирования текста наиболее трудоемок, но вместе с этим он предоставляет наибольшее количество возможностей. Так, вы с помощью макроса, текст которого приводится ниже, сможете не только отформатировать текст программы моноширинным шрифтом Courier New, но и выделить все зарезервированные слова языка программирования так, как это делается в современных средах программирования. Программа достаточно проста, но имеет одну проблему (скоро вы поймете, отчего так происходит): если в комментариях или строковых выражениях используются зарезервированные слова, они тоже выделяются полужирным. Более детальный анализ текста программ средствами Visual Basic for Application затруднен из-за невысокой производительности работы — да это и не нужно, поскольку исправить несколько ошибок в уже отформатированной программе гораздо проще, чем пословно просматривать программу и форматировать вручную.
В программе использованы два алгоритма преобразования. Первый алгоритм основан на том факте, что выделенный фрагмент текста в Word представляет собой по сути коллекцию слов, и если очередное слово является зарезервированным, то оно выделяется полужирным начертанием. Второй алгоритм использует средства поиска и замены, достаточно подробно рассмотренные в прошлый раз.
Для первого необходимы четыре процедуры:
— WordInKeyWords — функция возвращает True, если указанное слово содержится в массиве KeyWords. Массив KeyWord содержит список слов, которые выделяются полужирным начертанием.
— ConvertingMethod1 — преобразование в тексте путем перебора каждого слова.
— JavaModuleMethod1 — подготовка массивов для преобразования программ на Java.
— DelphiModuleMethod1 — подготовка массивов для преобразования программ на Delphi.
Для второго способа форматирования необходимы три процедуры:
— ConvertingMethod2 — преобразование в тексте при помощи объектов Find, Replacement.
— JavaModuleMethod2 — подготовка массивов для преобразования программ на Java.
— DelphiModuleMethod2 — подготовка массивов для преобразования программ на Delphi.
Программа, текст которой приводится в листинге, позволяет форматировать программы на Java и объектном Паскале. Вам следует связать процедуры JavaModuleMethod1, JavaModuleMethod2 или DelphiModuleMethod1, DelphiModuleMethod2 с командами панели инструментов или горячими клавишами и форматировать фрагменты текста, как программные модули. В начале этих процедур происходит подготовка массива KeyWords. Вы можете адаптировать их и к любым другим языкам программирования, предварительно составив перечень зарезервированных слов.
Рис. 4. В том случае, если вы, создавая макрос, использовали диалоговое окно для форматирования шрифта, Word запомнит все измененные параметры и добавит их в программу.
Как ввести текст программы
Поскольку задача была решена двумя способами, программа получилась довольно большой. Вы можете попробовать применять и тот, и другой способ, но впоследствии отказаться от одного варианта в пользу другого. В этом случае размеры программы сократятся вдвое.
При вводе используйте стандартную последовательность, то есть сначала создайте в шаблоне Normal.DOT новый модуль, а затем в нем определяйте процедуры. При добавлении макроса к шаблону Normal.dot, вы делаете его доступным в любых документах. Если это не желательно, создайте обычный документ, введите в него соответствующие процедуры, а затем сохраните его как шаблон. При желании вы также можете определить новую панель инструментов и связать ее с соответствующими процедурами модуля.
Другие применения макросов
Идеи, заложенные в макросе, не обязательно использовать только для форматирования листингов программ. Предложенные алгоритмы прекрасно подойдут и для выделения дат в тексте по истории чего-либо или для выделения названий компаний и фирм, их сотрудников в отчете по итогам работы за квартал, финансовый год и так далее. Словом, предложенные программы позволяют выделять любые фрагменты текста нужным вам способом — главное, составить список слов и определить способы их форматирования.
Тексты макросов приводятся в листинге
— Модуль в документе Doc1 предназначен для форматирования текста программ, подготавливаемых для книг, журнальных статей, рефератов или каких-то иных целей.
— При этом в тексте выполняются следующие преобразования: устанавливается гарнитура Courier New и все ключевые слова форматируются полужирным начертанием.
— Программа чрезвычайно проста и имеет одно проблему: если в комментариях или в строковых выражениях используются зарезервированные слова, они тоже выделяются полужирным.
— Более детальный анализ текста программ средствами Visual Basic for Application затруднен из-за невысокой производительности работы.
— WordInKeyWords — функция возвращает True, если указанное слово содержится в массиве KeyWords.
— ConvertingMethod1 — преобразование в тексте путем перебора каждого слова.
— JavaModuleMethod1 — подготовка для преобразования программ на Java.
— DelphiModuleMethod1 — подготовка для преобразования программ на Delphi.
— ConvertingMethod2 — преобразование в тексте при помощи объектов Find, Replacement.
— JavaModuleMethod2 — подготовка для преобразования программ на Java.
— DelphiModuleMethod2— подготовка для преобразования программ на Delphi.
Function WordInKeyWords(aWord As String) As Boolean
WordInKeyWords = False
For I = LBound(KeyWords) To UBound(KeyWords)
If LCase(Trim(KeyWords(I))) = LCase(Trim(aWord)) Then WordInKeyWords = True: Exit Function
Next
End Function
Sub ConvertingMethod1()
— процедура выполняет преобразование указанных в массиве KeyWords слов.
— При этом последовательно перебираются слова текста — такой способ очень долог.
On Error Resume Next ‘ необязательная строка, поскольку в процедуре отсутствуют инструкции, которые могут привести к ошибкам.
Dim MyRange As Range
Set MyRange = Selection.Range
MyRange.Font.Name = «Courier New»
MyRange.Font.Size = 8
For I = 1 To MyRange.Words.Count
If WordInKeyWords(MyRange.Words(I)) Then
MyRange.Words(I).Bold = True
End If
Next I
End Sub
Sub JavaModuleMethod1()
‘ подготавливает массив KeyWords для программ на Java и вызывает процедуру ConvertingVeryOld
KeyWords = Array(«abstract», «boolean», «break», «byte», «byvalue», «case», «catch», «char», «class», «const», «continue», «default», «do», «double», «else», «extends», «false», «final», «finally», «float», «for», «goto», «if», «implements», «import», «instanceof», «int», «interface», «long», «native», «new», «null», «package», «private», «protected», «public», «return», «short», «static», «super», «switch», «synchrinized», «this», «threadsafe», «throw», «throws», «transient», «true», «try», «void», «while»)
Application.ScreenUpdating = False
ConvertingMethod1
Application.ScreenUpdating = True
Application.ScreenRefresh
End Sub
Sub DelphiModuleMethod1()
‘ подготавливает массив KeyWords для программ на Java и вызывает процедуру ConvertingVeryOld
KeyWords = Array(«and», «array», «as», «asm», «begin», «case», «class», «const», «constructor», «destructor», «dispinterface», «div», «do», «downto», «else», «end», «except», «exports», «file», «finalization», «finally», «for», «function», «goto», «if», «implementation», «in», «inherited», «initialization», «inline», «interface», «is», «Label», «library», «Mod», «nil», «not», «object», «of», «or», «out», «packed», «procedure», «program», «property», «raise», «record», «repeat», «resourcestring», «set», «shl», «shr», «string», «then», «threadvar», «to», «try», «type», «unit», «until», «uses», «var», «while», «with», «xor»)
Application.ScreenUpdating = False
ConvertingMethod1
Application.ScreenUpdating = True
Application.ScreenRefresh
End Sub
Sub ConvertingMethod2()
— процедура выполняет преобразование указанных в массиве KeyWords слов.
— При этом используются объекты Find, Replacement для контекстной замены, поскольку это наиболее быстрый способ для обработки текста
On Error Resume Next ‘ необязательная строка, поскольку в процедуре отсутствуют инструкции, которые могут привести к ошибкам
Dim MyRange As Range
Set MyRange = Selection.Range
MyRange.Font.Name = «Courier New»
MyRange.Font.Size = 8
For I = LBound(KeyWords) To UBound(KeyWords)
MyRange.Find.Text = KeyWords(I)
MyRange.Find.Replacement.Text = KeyWords(I)
MyRange.Find.Replacement.Font.Bold = True
MyRange.Find.Execute Replace:=wdReplaceAll, Format:=True, MatchWholeWord:=True
Next I
End Sub
Sub JavaModuleMethod2()
‘ подготавливает массив KeyWords для программ на Java и вызывает процедуру Converting
KeyWords = Array(«abstract», «boolean», «break», «byte», «byvalue», «case», «catch», «char», «class», «const», «continue», «default», «do», «double», «else», «extends», «false», «final», «finally», «float», «for», «goto», «if», «implements», «import», «instanceof», «int», «interface», «long», «native», «new», «null», «package», «private», «protected», «public», «return», «short», «static», «super», «switch», «synchrinized», «this», «threadsafe», «throw», «throws», «transient», «true», «try», «void», «while»)
Application.ScreenUpdating = False
ConvertingMethod2
Application.ScreenUpdating = True
Application.ScreenRefresh
End Sub
Sub DelphiModuleMethod2()
‘ подготавливает массив KeyWords для программ на Delphi и вызывает процедуру Converting
KeyWords = Array(«and», «array», «as», «asm», «begin», «case», «class», «const», «constructor», «destructor», «dispinterface», «div», «do», «downto», «else», «end», «except», «exports», «file», «finalization», «finally», «for», «function», «goto», «if», «implementation», «in», «inherited», «initialization», «inline», «interface», «is», «Label», «library», «Mod», «nil», «not», «object», «of», «or», «out», «packed», «procedure», «program», «property», «raise», «record», «repeat», «resourcestring», «set», «shl», «shr», «string», «then», «threadvar», «to», «try», «type», «unit», «until», «uses», «var», «while», «with», «xor»)
Application.ScreenUpdating = False
ConvertingMethod2
Application.ScreenUpdating = True
Application.ScreenRefresh
End Sub
Сергей Лосев
Компьютерная газета. Статья была опубликована в номере 47 за 1999 год в рубрике программирование :: разное
Что такое листинг программы
Листинг (программирование)
Исхо́дный код (также исхо́дный текст) — текст компьютерной программы на каком-либо языке программирования. В обобщённом смысле — любые входные данные для транслятора.
Исходный код либо транслируется в исполняемый код при помощи компилятора, либо исполняется непосредственно по тексту при помощи интерпретатора.
Содержание
Назначение
Исходный код либо используется для получения объектного кода, либо выполняется интерпретатором. Изменения никогда не выполняются над объектным кодом, только над исходным, с последующим повторным преобразованием в объектный.
Другое важное назначение исходного кода — в качестве описания программы. По тексту программы можно восстановить логику её поведения. Для облегчения понимания исходного кода используются комментарии. Существуют также инструментальные средства, позволяющие автоматически получать документацию по исходному коду — т. н. генераторы документации.
Кроме того, исходный код имеет много других применений. Он может использоваться как инструмент обучения; начинающим программистам бывает полезно исследовать существующий исходный код для изучения техники и методологии программирования. Он также используется как инструмент общения между опытными программистами, благодаря своей (идеально) лаконичной и недвусмысленной природе. Совместное использование кода разработчиками часто упоминается как фактор, способствующий улучшению опыта программистов.
Программисты часто переносят исходный код из одного проекта в другой, что носит название повторного использования кода (Software reusability).
Исходный код — важнейший компонент для процесса портирования программного обеспечения на другие платформы. Без исходного кода какой-либо части ПО, портирование либо слишком сложно, либо вообще невозможно.
Организация
Исходный код некоторой части ПО (модуля, компонента) может состоять из одного или нескольких файлов. Код программы не обязательно пишется только на одном языке программирования. Например, часто программы, написанные на языке Си, с целью оптимизации, содержат вставки кода на языке ассемблера. Также возможны ситуации, когда некоторые компоненты или части программы пишутся на различных языках, с последующей сборкой в единый исполняемый модуль при помощи технологии известной как компоновка библиотек (library linking).
Сложное программное обеспечение при сборке требует использования десятков, или даже сотен файлов с исходным кодом. В таких случаях для упрощения сборки обычно используются файлы проектов, содержащие описание зависимостей между файлами с исходным кодом, и описывающие процесс сборки. Эти файлы так же могут содержать и другие параметры компилятора и среды проектирования. Для разных сред проектирования могут применяться разные файлы проекта, причем в некоторых средах эти файлы могут быть в текстовом формате, пригодном для непосредственного редактирования программистом с помощью универсальных текстовых редакторов, в других средах поддерживаются специальные форматы, а создание и изменения файлов производится с помощью специальных инструментальных программ. Файлы проектов обычно включают в понятие «исходный код». В подавляющем большинстве современных языковых сред обязательно используются файлы проектов вне зависимости от сложности прочего исходного кода, входящего в данный проект. Часто под исходным кодом подразумевают и файлы ресурсов, содержащие различные данные, например, графические изображения, нужные для сборки программы.
Для облегчения работы с исходным кодом, для совместной работы над кодом командой программистов, используются системы управления версиями.
Качество
В отличие от человека, для компьютера нет «хорошо написанного» или «плохо написанного» кода. Но то, как написан код, может сильно влиять на процесс сопровождения ПО. О качестве исходного кода можно судить по следующим параметрам:
Неисполняемый исходный код
Копилефтные лицензии для свободного ПО требуют распространения исходного кода. Эти лицензии часто используются также для работ, не являющихся программами — например, документации, изображений, файлов данных для компьютерных игр.
В таких случаях исходным кодом считается форма данной работы, предпочтительная для её редактирования. В лицензиях, предназначенных не только для ПО, она также может называться версией в «прозрачном формате». Это может быть, например:
Большая Энциклопедия Нефти и Газа
Листинг — программа
Листинги программ каждого модуля являются логической частью его описания. Однако листинги могут быть слишком объемистыми для объединения их в первозданном виде с каким-либо другим документом. Возможно включение в этот раздел листингов на микрофишах или помещение ссылок на них. Если здесь будут приведены не листинги, а ссылки, необходимо особенно тщательно следить за их точностью, сохраняя ее на протяжении всей фазы использования. [1]
Листинг программы должен иметь удобочитаемый вид. Несколько страниц листинга можно сэкономить за счет уплотнения команд, но при этом теряется существенно больше в смысле удобочитаемости и общего понимания программы. Языки высокого уровня допускают большую свободу в использовании пробелов ддя расширения предложений. Ничего не теряется при неплотном написании факти-ческого кода, поскольку компилятор игнорирует незначащие про белы. Поэтому, убедительно рекомендуется записывать предложения в ясном и логичном формате. [3]
Печать листинга программы будет осуществлена с этой отметки. Директива LIST не будет напечатана, но последующие строки будут выводиться в исходной распечатке. [6]
Из основного листинга программы FileBox видно, что и первая кнопка-селектор, и кнопка Close использует стиль WS GROUP. Данный стиль информирует Windows о том, что этот и следующие за ним элементы управления должны рассматриваться как группа. [7]
По листингу программы легко удостовериться, что это правильная ссылка на MEM при относительной адресации. Расчет смещения выполняется в предположении, что счетчик команд указывает на следующую ячейку. [8]
В листинге программы 3.5 F приведены только оригинальные подпрограммы для интерполяционного метода. [9]
В листинге программы 7.3 F не приведены подпрограммы метода секущих SECANT и интегратора Рунге-Кутты RK21, взятые без изменения из программ 1.6 F и 6.2 F. Названные подпрограммы записаны в отдельном файле, который подсоединяется к программе 7.3 F на этапе компиляции и редактирования. Предлагаемый способ передачи параметров не нарушает общности подпрограммы SECANT и RK21 и позволяет использовать их без изменения. Синтаксис языка Фортран запрещает включать формальные параметры подпрограмм и функций в COMMON-блоки. [10]
В 6 приведен листинг программы на Фортране, реализующей стандартный алгоритм БПФ. В [8] представлена эффективная программа, написанная на Фортране, для действительных последовательностей. [13]
В противном случае листинг программы будет иметь несколько необычный вид: все используемые буквы кириллицы в комментариях и сообщениях будут преобразованы в соответствующие буквы латинского алфавита. [14]
Типы программирования. Первые листинги.
Типы программирования и основы объектно-ориентированного программирования
Когда-то знакомство с основами программирования начиналось не с изучения таких сложных языков, как С и Assembler, а с изучения языка Basic. Эта аббревиатура расшифровывается как «универсальный символьный код для начинающих». Basic является интерпретирующим языком.
Раньше интерпретирующие языки программирования были предназначены только для начинающих, так как программы, написанные на этих языках, могли выполняться лишь в редакторах программ. Теперь же Visual Basic (наследник Basic) имеет в своем составе компилятор, а для интерпретирующих языков программирования предусматривается среда выполнения, которая встраивается в различные операционные системы.
Рассмотрим теперь различия в схемах построения программ в так называемом процедурном программировании, с одной стороны, и объектно-ориентированном, с другой. Одним из предшественников Java был С (подробнее о родословном древе языков мы скажем позднее), который «исповедовал» процедурный тип программирования. В процедурном программировании основной единицей программы выступает процедура (или функция) — обособленный именной блок кода, который можно откуда-либо вызывать.
Главная процедура main (основной блок кода) последовательно вызывала другие процедуры программы, которые могли передавать управление друг другу. Написанная таким образом программа была громоздкой и не очень структурированной.
Этих недостатков в определенной мере лишена программа, построенная по принципам объектно-ориентированного программирования (ООП). Такие программы стали писать на языке С++, выступившим наследником языка С. В ООП структурной единицей программы считается не процедура, а так называемый класс. У класса есть свойства (характеристики класса) и методы (действия над конкретным объектом — «экземпляром» — данного класса). Ссылки на объект сокращают текст программы за счет обращения к соответствующим характеристикам и методам класса, к которому принадлежит данный конкретный объект. Приведем пример, который пояснит сказанное.
Предположим, у нас есть программа, которая работает со списком пользователей данного персонального компьютера. Каждый новый пользователь становится конкретным «объектом» класса «пользователи». При создании нового объекта ему приписываются «свойства», которые должны быть у каждого экземпляра, или объекта, класса (это могут быть фамилия, имя, отчество, дата рождения и т.п.). С объектом можно что-то сделать (вставить в список, удалить из списка, изменить адрес или фамилию пользователя и т.п.) — это и есть «методы» (блоки кода, которые принадлежат классу, но вызываются данным конкретным объектом и позволяют выполнять как минимум одну операцию с данным объектом).
Введем еще несколько понятий, важных для последующего наложения: событие и обработчик события. Сразу поясним, что это такое, на том же примере. Когда мы пользуемся упомянутой программой, мы можем щелкнуть на соответствующих кнопках (каждая из которых обозначает какую-то важную для нас операцию, например: «добавить», «удалить», «изменить» и т.п.). Как только мы щелкнем на какой-то конкретной кнопке, возникает событие. Сразу же вступает в действие обработчик события, т.е. начинает работать код, являющийся реакцией на событие. Обработчик события, скажем щелчка на кнопке «Добавить», может по нашему желанию создать новый объект класса пользователи и применить какой-либо метод данного класса для этого конкретного объекта для изменения его свойств (например, свойству фамилия мы по желанию пользователя присваиваем значение Иванов). В классе есть четкое описание всех возможных методов, которые можно применить к любому экземпляру данного класса. Поэтому обращение к классу экономит время и силы программиста, работающего с конкретными объектами.
Язык С++ — предшественник Java — нельзя было назвать исключительно «объектно-ориентированным языком». В программе на языке С++ могли не использоваться классы — структурные единицы ООП, а главная процедура main не принадлежала ни к какому классу.
Напротив, Java — строго объектно-ориентированный язык, он четко выдерживает все требования парадигмы ООП.
Рассмотрим еще три важных понятия ООП: наследование, инкапсуляция, полиморфизм. Наследование — это способность классов быть производными от других классов, наследуя при этом какие-то их методы и свойства. Вернемся к нашему старому примеру.
Класс пользователи может быть дочерним классом родительского класса люди и. естественно, наследовать какие-либо его свойства (допустим, пол, год рождения и т.п.) и методы (например, метод-запрос пользователя/человека о его паспортных данных).
Инкапсуляция позволяет ограничить приписывание каких-либо свойств класса другим объектам, которые не являются объектами этого класса. Полиморфизм позволяет объектам принимать несколько различных форм (в нашем примере один объект, созданный как объект типа пользователи, может быть как экземпляром класса пользователи, так и экземпляром класса люди).
А теперь познакомимся с историей создания языка Java.
История языка Java
Давным-давно программисты писали программу непосредственно в двоичном коде. С появлением первого языка программирования — Assembler — работа программистов сильно упростилась. Стали появляться все новые и новые языки программирования. В 1972 году Деннис Ритчи из AT&T Bell Laboratories разработал процедурный язык С, который сразу стал очень популярным, так как был предназначен для создания сложных программ. В 1979-1980 гг. Бьерном Страуструпом, работающим в той же компании, был создан язык С with Classes.
У этого языка обнаружились некоторые недостатки, поэтому в 1983 году тот же Страуструп разработал язык С++, ставший популярным в 90-е гг. XX века. В 1991 году в компании Sun Microsystems под руководством Джеймса Гослинга, Патрика Ноутона, Криса Варта, Эдда Френка и Майкла Шеридана началась разработка языка Oak (дуб). В конце 1992 года появился первый вариант этого языка. С весны 1995 года данный язык стал называться Java.
Ява — остров Индонезийского архипелага, а также сорт кофе, который, согласно легенде, пили создатели Java.
Основы языка Java
Теперь перейдем непосредственно к изучению основ языка программирования Java на конкретном примере. Напишем первую программу на этом языке (листинг 1.1). Для написания и запуска кода используйте среду разработки (IDE), например, Eclipse, IntelliJ IDEA или Android Studio. Как установить и настроить Android Studio, смотрите здесь.
Листинг 1.1. Первая программа на языке Java