Опубликован: 04.12.2009 | Доступ: свободный | Студентов: 8416 / 657 | Оценка: 4.30 / 3.87 | Длительность: 27:27:00
Лекция 2:

Объектно-ориентированное проектирование и платформа NetBeans

2.5. Создание в NetBeans простейшего приложения Java

Создадим с помощью среды NetBeans приложение Java. Для этого запустим интегрированную среду разработки (IDE) NetBeans , и выберем в главном меню File/New Project… В открывшемся диалоге выберем General / Java Application / Next>

Создание нового проекта. Шаг 1

увеличить изображение
Рис. 2.7. Создание нового проекта. Шаг 1

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

Создание нового проекта. Шаг 2

увеличить изображение
Рис. 2.8. Создание нового проекта. Шаг 2

На следующем рисунке показано, как выглядит редактирование исходного кода приложения в среде NetBeans.

В левом верхнем окне "Projects" показывается дерево проектов. В нашем случае это дерево для проекта JavaApplication1. Это окно может быть использовано для одновременного показа произвольного числа проектов. По умолчанию все деревья свернуты, и нужные узлы следует разворачивать щелчком по узлу с "плюсиком" или двойным щелчком по соответствующему имени.

В правом окне "Source" показывается исходный код проекта.

В левом нижнем окне "Navigator" показывается список имен членов класса приложения – имена переменных и подпрограмм. Двойной щелчок по имени приводит к тому, что в окне редактора исходного кода происходит переход на то место, где задана соответствующая переменная или подпрограмма.

Редактирование исходного кода приложения

увеличить изображение
Рис. 2.9. Редактирование исходного кода приложения

Рассмотрим, как выглядит сгенерированный исходный код нашего приложения Java:

/*
 * Main.java
 *
 * Created on 21 Июнь 2006 г., 13:08
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package javaapplication1;

/**
 *
 * @author User
 */
public class Main {
    
    /** Creates a new instance of Main */
    public Main() {
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    }

}

Сначала идет многострочный комментарий /* … */ Он содержит информацию об имени класса и времени его создания.

Затем объявляется, что наш класс будет находиться в пакете javaapplication1. После этого идет многострочный комментарий /** … */, предназначенный для автоматического создания документации по классу. В нем присутствует инструкция задания метаданных с помощью выражения @authorинформация об авторе проекта для утилиты создания документации javadoc. Метаданные – это некая информация, которая не относится к работе программы и не включается в нее при компиляции, но сопровождает программу и может быть использована другими программами для проверки прав на доступ к ней или ее распространения, проверки совместимости с другими программами, указания параметров для запуска класса и т.п. В данном месте исходного кода имя "User" берется средой разработки из операционной системы по имени папки пользователя. Его следует заменить на имя реального автора, т.е. в нашем случае на "Вадим Монахов".

Далее следует объявление класса Main, который является главным классом приложения. В нем объявлены две общедоступных ( public ) подпрограммы. Первой из них является конструктор:

public Main() {
}

Его имя совпадает с именем класса. Он занимается созданием объектов типа Main. Обычно такой конструктор вызывается из метода main, и с его помощью создается всего один объект, "олицетворяющий" собой приложение. Но, вообще говоря, таких объектов в простых программах может и не создаваться, как это и происходит в нашем случае.

Все классы и объекты приложения вызываются и управляются из метода main, который объявлен далее и выглядит следующим образом:

public static void main(String[] args) {
 }

Он является методом класса, и поэтому для его работы нет необходимости в создании объекта, являющегося экземпляром класса Main. Хотя если этот объект создается, это происходит во время работы метода main.

Метод main является главным методом приложения и управляет работой запускаемой программы. Он автоматически вызывается при запуске приложения. Параметром args этого метода является массив строк, имеющий тип String[].Это параметры командной строки, которые передаются в приложение при его запуске. Слово String означает "Строка", а квадратные скобки используются для обозначения того, что это массив строк.

После окончания выполнения метода main приложение завершает свою работу.

При объявлении любого метода в Java сначала указывается модификатор видимости, указывающий права доступа к методу, затем другие модификаторы, после чего следует тип возвращаемого методом значения. Если модификатор видимости не указан, считается, что это private (читается "прайвит")– "закрытый, частный", не позволяющий доступ к методу из других классов.

Конструкторы представляют особый случай, в них имя типа и имя метода совпадают. В Java они не считаются методами, хотя в других языках программирования такого тонкого различия не делается.

Далее следует имя метода, после чего в круглых скобках идет список параметров (аргументов), передаваемых в данный метод при его вызове. После этого в фигурных скобках идет тело метода, то есть его реализация – пишется тот алгоритм, который будет выполняться при вызове метода.

В языке Java, как и в C/C++ подпрограммы всегда являются подпрограммами-функциями, возвращающими какое-либо значение. Если надо написать подпрограмму-процедуру, в которой не надо возвращать никакого значения, в C/C++/Java пользуются подпрограммами-функциями с типом возвращаемого значения void – "пустота, пустое пространство". Как и происходит в случае метода main.

Среда NetBeans создает заготовку методов – в них имеется пустое тело. Для осуществления методом какой-либо деятельности следует дописать свой собственный код. Напишем традиционный пример – вывод сообщения "Привет!". Для этого вместо комментария

// TODO code application logic here

("описать тут логику работы приложения") напишем строку вывода текста

System.out.println("Привет!");

Класс System, "система", имеет поле out, "наружу". Это объект, предназначенный для поддержки вывода. У него есть метод println, предназначенный для вывода текста в режиме консоли.

Консольный ввод-вывод ранее широко применялся в операционных системах, ориентированных на работу в режиме командной строки. При этом основным средством взаимодействия пользователей с программами служила текстовая консоль ( "пульт управления"). В ней устройством ввода служила клавиатура, а устройством вывода – окно операционной системы, обеспечивающее вывод текста в режиме пишущей машинки (системным шрифтом с буквами, имеющими одинаковую ширину). Очень много примеров программ в учебных курсах по Java ориентированы на работу в таком режиме. В настоящее время в связи с тем, что подавляющее большинство пользователей работают с программами в графическом режиме, работу в консольном режиме нельзя рассматривать как основную форму ввода-вывода. Тем более, что NetBeans позволяет без особых усилий создавать графический пользовательский интерфейс (GUIGraphics User Interface) приложения. А консольный режим следует применять только как промежуточный, удобный в отладочном режиме как средство вывода вспомогательной информации.

2.6. Компиляция файлов проекта и запуск приложения

В современных средах разработки используется два режима компиляции - compile ("скомпилировать") и build ("построить"). В режиме "compile" происходит компиляция только тех файлов проекта, которые были изменены в процессе редактирования после последней компиляции. А в режиме "build" перекомпилируются заново все файлы.

Для компиляции проекта следует выбрать в меню среды разработки Build/ Build Main Project (или, что то же, клавиша <F11>, или на панели инструментов иконка с голубой книжкой и гаечным ключом). При этом будут заново скомпилированы из исходных кодов все классы проекта.

Пункт Build/ Clean and Build Main Project (или, что то же, комбинация клавиш <Shift> <F11>, или на панели инструментов иконка с оранжевой книжкой и веником) удаляет все выходные файлы проекта (очищает папки build и dist ), после чего по новой компилируются все классы проекта.

Пункт Build/ Generate Javadoc for "JavaApplication1" запускает создание документации по проекту. При этом из исходных кодов классов проекта выбирается информация, заключенная в документационные комментарии /** … */, и на ее основе создается гипертекстовый HTML-документ.

Пункт Build/ Complile "Main.java" (или, что то же, клавиша <F9> ) компилирует выбранный файл проекта - в нашем случае файл Main.java, в котором хранятся исходные коды класса Main.

Для того чтобы запустить скомпилированное приложение из среды разработки, следует выбрать в меню среды разработки Run/ Run Main Project (или, что то же, клавиша <F6>, или на панели инструментов иконка с зеленым и желтыми треугольниками). При запуске приложение всегда автоматически компилируется (но не "строится"), так что после внесения изменений для запуска обычно достаточно нажать <F6>. После запуска нашего проекта в выходной консоли, которая находится в нижней части окна проекта, появится служебная информация о ходе компиляции и запуска:

Информация о ходе компиляции и запуска в выходной консоли

Рис. 2.10. Информация о ходе компиляции и запуска в выходной консоли

В нее же осуществляется вывод методов System.out.print и System.out.println.

Метод System.out.print отличается от метода System.out.println только тем, что в println после вывода осуществляется автоматический переход на новую строку, а в print продолжается вывод в ту же строку консоли. Поэтому вывод

System.out.println("Привет!");
System.out.println("Привет!");

Даст текст

Привет!
Привет!

а

System.out.print("Привет!");
System.out.print("Привет!");

даст

Привет!Привет!
Полетаев Дмитрий
Полетаев Дмитрий
Не очень понятно про оболочечные Данные,ячейки памяти могут наверно размер менять,какое это значение те же операции только ячейки больше,по скорости тоже самое
Максим Старостин
Максим Старостин

Код с перемещением фигур не стирает старую фигуру, а просто рисует новую в новом месте. Точку, круг.