T.M. SoftStudio

feci quod potui, faciant meliora potentes

Купить полную версию курса "Введение в вычисления с Java" (русскоязычная версия, лекции, тесты, лабораторные работы)

Введение в вычисления с Java. Абстрактные типы данных (ADT). Eclipse

Неделя 10

Лекция 39

Eclipse

До сих пор мы использовали BlueJ как нашу интегрированную среду разработки или IDE для разработки наших Java программ.

Среда BlueJ имеет простой и удобный в использовании пользовательский интерфейс специально для начинающих программистов.

Хотя она была разработана в основном для образовательных целей, это совершенно нормально, если вы захотите продолжать использовать ее в качестве Java инструмента разработки программного обеспечения.

То, что я хочу сделать сейчас, это кратко представить другую среду Java IDE, которая наиболее популярна среди разработчиков программного обеспечения Java.

Она называется Eclipse и некоторые исследования сообщают, что более 60 процентов разработчиков Java используют Eclipse как их IDE.

Eclipse имеет некоторые дополнительные возможности, которые особенно полезны для разработки крупномасштабного программного обеспечения.

Eclipse была первоначально выпущена в 2001 году IBM.

Она бесплатна и поддерживает мульти-платформенность, включая ОС Windows или MAC.

Вы можете ее бесплатно скачать, просто указав в поиске Eclipse.

Так что, если вы откроете закачки Eclipse, вы найдете множество вариантов.

Я предлагаю Eclipse IDE for Java Developers, которая должна быть достаточно хороша для большинства целей.

После того, как вы скачали ZIP файл, вы просто должны его распаковать, и одна хорошая особенность в том, что нет необходимости делать какие-либо установки.

После того как все файлы были извлечены, один из файлов в папке Eclipse является файлом приложения с именем eclipse, который представлен в виде круглого значка.

Я уже создал ярлык для приложения Eclipse.

Когда вы открываете его впервые, вам будет предложено указать рабочую область.

Рабочее пространство, это то, где вы хотите размещать все проекты и папки для Java приложений.

Позвольте мне установить его как Java/workspace.

Я не буду перечислять все этапы здесь, и вам следует обратиться к более подробной инструкции.

Когда приложение впервые откроется, вы увидите страницу приветствия.

Вы можете просто закрыть ее; вы всегда можете вернуться на страницу приветствия, перейдя в выпадающее меню под Help, например, если вы хотите пойти через Tutorials.

Когда Eclipse открыта, вы найдете, что среда организована из нескольких компонентов.

Я показываю здесь основной компонент. Это окно редактора.

Это там, где вы проводите большую часть своего времени для разработки и редактирования программы Java.

Окно Package Explorer помогает программистам управлять своими исходными файлами и другими связанными с ними файлами, такими как библиотеки и файлы данных.

Окно Console, это там, где программа Java будет взаимодействовать с пользователями, принимая входные данные и отображая вывод.

Это должно стать ясно, увидев некоторые примеры.

Если вы до сих пор помните, первая Java программа, которую мы написали, является программа, которая выводит простое сообщение "Привет Мир".

Давайте попробуем ту же программу в Eclipse.

Чтобы создать новый проект Java, вы можете щелкнуть правой кнопкой на окне Package Explorer, а затем выбрать Java Project, или вы можете найти тег File в строке меню, выбрать New, а затем Java Project.

Далее вы введете имя проекта. Давайте назовем его Greetings.

Для среды выполнения Java или JRE, просто используйте JRE, которую вы установили для вашей машины.

Есть несколько вариантов макета проекта.

Обычно вы можете просто оставить его настройки по умолчанию.

Таким образом, вы просто нажмите на Finish.

Теперь был создан пустой проект.

Поскольку все программы Java это классы, вы можете начать с создания нового класса, кликнув правой кнопкой мыши на папке проекта и выбрав Class.

Давайте использовать Greetings как имя класса, который мы создаем.

И оставить его как public.

Там, где указано какие методы вы бы хотели создать, вы можете оставить невыбрано.

Или, если вы хотите сэкономить в создании метода main, вы можете отметить эту опцию и затем нажмите кнопку Finish.

Теперь вы можете увидеть, что шаблон создан для вас.

Помните, что, как я уже говорил с самого начала курса, метод main является основной точкой входа для всех программ Java.

Вы должны знать, что каждое из этих ключевых слов означает теперь, public означает, что он виден всем классам Java, static означает, что это метод класса, вместо того, чтобы принадлежать к какому-либо конкретному объекту, то есть, нам не нужно создавать экземпляр перед его использованием.

void означает, что он не возвращает значение.

main означает название метода, параметр которого представляет собой массив строк с именем args.

Мы не говорили о том, почему мы должны указать параметры, такие как эти.

Я вернусь к этому чуть позже.

Вместо того чтобы использовать класс IO, который мы предоставили вам специально для данного курса, давайте использовать стандартный метод вывода предоставленный Java, System.out.println.

Вы можете запустить эту программу с помощью Run в строке меню или простым щелчком на Run кнопке.

Это будет компилировать, связывать, загружать и выполнять программу.

Как вы можете видеть, сообщение "Hello world" печатается на консоли.

Теперь у вас есть своя первая рабочая программа Java в Eclipse.

Давайте изменим эту программу немного, так что мы сможем также продемонстрировать использование стандартного ввода.

Когда мы говорили о File IO, мы ввели класс Scanner.

Класс Scanner часто используется для получения входных данных от пользователя.

Мы можем создать класс Scanner, указав Scanner, а затем имя объекта сканера, назовем его input.

Scanner input = new Scanner(System.in);

Аргумент, что мы собираемся использовать здесь для конструктора, является "System.in", который является стандартным входным потоком, определяемым для консоли.

Обратите внимание, что существует красная метка здесь; это хорошая функция проверки кода, которая обеспечивается Eclipse, что позволяет вам зафиксировать любую потенциальную проблему сразу.

Так вот, здесь предполагается, что класс Scanner нужно импортировать.

Выбрав класс Scanner из java.util, оператор импорта включается в начале кода.

Далее, мы хотим запрашивать у пользователя имя, которое приветствуют.

Используем System.out и сообщение будет "Введите имя:".

А потом получим имя от пользователя с консоли.

Обратите внимание, что в этом случае метод next является то, что мы хотим, потому что мы хотим, чтобы следующая строка была введена.

Теперь давайте изменим оставшуюся часть вывода.

Вместо вывода "Hello World", мы выведем " Hello ", а затем имя человека, котого мы хотим приветствовать.

Давайте еще раз запустим программу.

Вы можете видеть, что есть запрос на ввод имени.

Давайте вернемся к параметру для main, то есть, массиву строк args.

Причина, по которой main метод был определен таким образом, произошла потому, что, когда платформа Java была впервые разработана, графический интерфейс пользователя был еще не так популярен.

Командная строка в качестве пользовательского интерфейса по-прежнему используется во многих приложениях.

Если вы до сих пор помните, мы кратко упомянули интерфейс командной строки в первой лекции.

В интерфейсе командной строки, пользователи взаимодействуют с программами, предоставляя определенные параметры в командной строке, когда программа вызывается.

Например, могут быть предоставлены некоторые стартовые значения или имена входных файлов.

Такие параметры будут внесены в строковый массив args.

Проиллюстрируем это с помощью программы Greetings, предполагая, что имя, которое будет использоваться в приветствии, будет предоставлено в качестве параметра командной строки.

Таким образом, мы не должны настраивать объект сканера.

Вместо того чтобы использовать name здесь, мы можем просто использовать args[0], потому что это первый маркер, извлеченный из командной строки.

Мы можем запустить программу, не переходя в интерфейс командной строки, выбрав Run Configurations.

Под Run Configurations можно увидеть тег Arguments, и если вы внесете аргумент в окне здесь и нажмете Run, вы увидите, что в настоящее время появляется сообщение-приветствие.

Теперь, для того, чтобы выполнить программу с помощью пользовательского интерфейса командной строки, мы должны сгенерировать исполняемый файл JAR.

JAR расшифровывается как Java archive.

Вы можете пойти в File в строке меню, а затем выбрать Export, под Java можно выбрать Runnable JAR file, а затем нажмите кнопку Next, Launch configurations будет класс Greetings.

Вы можете выбрать Export destination, перейдя в проводник файлов.

Давайте использовать то же имя Greetings, а затем мы можем просто нажать кнопку Finish.

Просто нажмите кнопку ОК.

Теперь вы увидите, что в окне командной строки, если вы идете в eclipse, есть файл Greetings.jar.

Для запуска этой программы, вам необходимо ввести “java –jar Greetings.jar TC”.

Теперь вы можете увидеть, что сообщение “Hello TC” печатается.

Если вы снова запустите программу, предоставляя другое имя в качестве параметра, вы можете видеть, что сообщение с новым именем отображается.

Давайте взглянем на пару более интересных примеров.

Мы будем использовать проблему n-ферзей, которую мы обсуждали в предыдущей лекции.

Скажем, мы хотим импортировать существующий проект, который мы разработали в другом месте.

Мы можем пойти в File в строке меню, выбрать Import и Existing Project into Workspace.

Далее вы должны найти проект, который вы хотите импортировать, просматривая папки.

NQueen здесь является корневым каталогом для проекта.

Просто нажмите кнопку Finish.

Теперь вы можете видеть, что NQueen был импортирован.

Вы можете открыть исходный файл.

Ну, шрифт здесь может быть немного мал, так что вы можете открыть Preferences под Window.

Вы увидите, что в разделе Appearance есть Colors and Fonts.

Выберите Colors and Fonts, а затем выберите Java Editor Text Font, где можно изменить размер шрифта.

Скажем, измените от 11 до 16.

Нажмите кнопку ОК.

Теперь вы можете видеть, что шрифт в редакторе стал больше.

Так вот программа, которую мы видели раньше, была импортирована в Eclipse рабочее пространство.

Эта программа была протестирована раньше, и таким образом мы можем просто запустить программу.

И тогда вы сможете увидеть, что для задачи 8-ферзей, есть 92 решения.

Я хочу показать вам, что Eclipse также предлагает хороший инструмент отладки, который позволяет вам проследить выполнение программы, что очень полезно во время фазы разработки программы.

Чтобы это сделать, вы идете в перспективу Debug.

Выбрав Debug, нажмите OK.

Вы можете видеть, что здесь есть тег Debug.

Вы можете переключаться сейчас между Java и Debug.

Сейчас мы находимся в режиме отладки.

Так, скажем, если мы хотим выбрать точку остановки.

И наиболее интересной точкой остановки будет точка, когда будет найдено решение.

Обратите внимание, здесь можно увидеть, что, когда размер стека равен n, это означает, что решение найдено.

Итак, давайте установить точку останова здесь в выражении "System.out.println", которое будет распечатывать стек.

Так что если вы запустите программу в режиме отладки или вы можете просто нажать F11, запустив программу в режиме отладки, программа будет выполняться, пока не достигнет точки останова.

Выбрав Step Over, как вы можете видеть, это выражение вывода выполняется, и первое решение выводится.

Если мы выбираем Step Return или нажимаем F7, программа будет продолжать выполнение до тех пор, снова не попадает в точку останова.

Если мы выбираем Step Over, как вы можете видеть, отображается второе решение.

Таким образом, вы можете изучить, действительно ли верно это решение.

И вы можете продолжать процесс.

Ну, если вы уверены, что программа работает правильно, то вы можете просто остановить выполнение программы.

Давайте вернемся к перспективе Java.

Другая вещь, которую я хочу показать, это что в настоящее время программа будет работать только для одного конкретного n.

Как я упоминал ранее, мы можем на самом деле воспользоваться args здесь, путем предоставления определенного параметра через пользовательский интерфейс командной строки.

Вы можете сделать это, скажем, вместо того, чтобы устанавливать n равным 8, мы можем установить n как параметр, данный в качестве аргумента командной строки.

Помните, что параметр вводится в виде строки, так или иначе, мы должны преобразовать строку в целое число.

Мы можем сделать это с помощью класса оболочки Integer.

Обратите внимание, что метод valueOf фактически возвращает объект Integer, но мы можем просто присвоить его примитивному типу int, потому что Java будет делать авто распаковку.

Давайте сохраним это, но вместо того, чтобы запускать это с помощью пользовательского интерфейса командной строки, мы можем также запустить программу, перейдя в Run Configurations.

Как я уже показал вам ранее, выбрав Arguments, вы можете предоставить различные аргументы здесь, скажем, n, равный 4 для задачи 4-ферзей.

Теперь вы можете видеть, что для задачи 4-ферзей, у вас есть 2 решения.

Если мы попробуем снова, для задачи n-ферзей с n равным 5, теперь вы можете видеть, что есть 10 решений, как мы бы ожидали в задаче 5-ферзей.

Давайте рассмотрим более сложную программу, которая требует использования некоторых библиотек, которые являются внешними по отношению к стандартным библиотекам Java.

Давайте сначала закроем предыдущую программу.

Опять же, мы будем использовать графическую версию программы n-ферзей.

Я уже создал исходный файл, так что я могу просто импортировать его.

Опять же выберите Existing Project into Workspace, файл находится в проекте NQueens.

У нас есть исходный файл для NQueens, обратите внимание, что восклицательный знак означает, что есть некоторые ошибки.

Давайте откроем его.

Наведите курсор мыши на ошибку и вы обнаружите, что некоторые библиотеки не могут быть разрешены.

Если вы расширите это, вы обнаружите, что среда не может найти библиотеку comp1022p.

Что мы можем сделать, это настроить библиотеку созданием папки.

И мы создаем папку с именем libs.

Теперь вы можете видеть, что папка libs была создана.

И тогда мы должны найти местоположение библиотеки, и мы копируем ее, а затем поместить ее в папку.

И вы можете увидеть, что тег ошибки был удален.

Это графическая версия проблемы n-ферзей.

Я хочу показать вам еще одну функцию, доступную в Eclipse.

Рефакторинг является процессом реструктуризации существующего компьютерного кода без изменения поведения программы.

Это может улучшить читаемость и эксплуатацию вашей программы.

Одна полезная функция рефакторинга, это переименование переменных.

Здесь имена, выбранные для переменных i и х, не очень значимые.

Мы можем изменить каждое из их вхождений одно за другим, но есть опасность, что мы могли бы опечататься или пропустить некоторые из них.

Чтобы переименовать переменные в Eclipse, можно выделить переменную или имя класса, которое вы хотите изменить, а затем перейти к Refactor в строке меню, выбрать пункт Rename, и вы можете ввести новое имя.

Скажем, вы хотите изменить i на row, вы можете увидеть, что не только это место было изменено, но все вхождения i в пределах этого метода были также изменены.

Скажем, мы хотим изменить также х, пойдем в Refactor, Rename, а затем введите новое имя col.

Опять вы можете увидеть, что все вхождения х были переименованы в col.

Давайте попробуем запустить программу, установив n, равный 5.

Мы просто нажмем на кнопку Run; вы можете видеть, что решения отображаются в графическом виде.

Но довольно трудно понять, правильны ли эти решения.

И вы можете видеть, что, 10 решений были найдены в задаче n-ферзей.

Теперь, если вы хотите проследить программу, мы можем перейти в режим отладки.

Опять же, мы хотим проверить, когда будет найдено решение, это if выражение для проверки, является ли размер стека равным числу ходов.

Мы ставим точку останова здесь, и тогда мы запустим программу с помощью Debug.

Вы также можете нажать F11.

Теперь вы можете видеть, что первое решение будет найдено.

Если мы будем продолжать запускать программу, здесь появляется второе решение, и так далее.