Глава 2: Среда разработки NetBeans

Preview:

Citation preview

Глава 2. Объектно-ориентированное проектирование и платформа NetBeans● Процедурное и объектно-ориентированное

программирование. Инкапсуляция● Работа со ссылочными переменными. Сборка

мусора● Проекты NetBeans. Пакеты. Уровни видимости

классов. Импорт классов● Базовые пакеты и классы Java● Создание в NetBeans простейшего приложения

Java ● Компиляция файлов проекта и запуск

приложения

Курс подготовлен при поддержке Sun MicrosystemsПравила использования материалов опубликованы на www.sun.ru

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

(продолжение)● Структура проекта NetBeans Создание в NetBeans

приложения Java с графическим интерфейсом ● Редактор экранных форм● Внешний вид приложения ● Ведение проектов ● Редактирование меню экранной формы ● Создание нового класса ● Документирование исходного кода ● Основные компоненты пакетов swing и awt ● Технологии Java и .Net

Процедурное и объектно-ориентированное программирование. Инкапсуляция

● Три базовых принципа объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм.

● Класс – это описание того, как устроен объект. И поля данных, и методы задаются в классах. Но при выполнении программы поля данных хранятся в объектах, а методы – в классах. Методы задают поведение объекта, а поля данных - состояние объекта.

● Переменные, описываемые в классах, называются глобальными. Они задают поля данных объектов. Переменные, описываемые в методах, называются локальными. Они являются вспомогательными и существуют только во время вызова метода.

Классы и объекты. Работа со ссылочными переменными. Сборка мусора

● Объект создаётся с помощью вызова конструктора - специальной подпрограммы-функции, задаваемой в классе.

● Методы делятся на методы объектов и методы классов. Метод объекта можно вызывать только из объекта соответствующего типа. А метод класса может работать и при отсутствии объекта, и вызываться из класса.

● Переменные ссылочного типа содержат адреса данных, а не сами данные. Поэтому присваивания для таких переменных меняют адреса, но не данные. Все объектные типы являются ссылочными.

● Потеря ссылки на объект приводит к сборке мусора.

Работа со ссылочными переменными. Сборка мусора I

Данные

Адрес

Ссылочная переменная

Объект1

Работа со ссылочными переменными. Сборка мусора II

Данные1

Адрес

Ссылочная переменная

Объект1- мусор

Данные2

Объект2

Проекты NetBeans. Пакеты● Основой разработки программы является проект - набор

файлов и папок заданной структуры.● Все классы и объекты приложения вызываются и

управляются из метода main, который имеет сигнатуру public static void main(String[] args). Он является методом класса, и поэтому для его работы нет необходимости в создании объекта, являющегося экземпляром класса.

● Объявление, что класс с именем MyClass1 находится в пакете pkg3, находящемся в пакете pkg2, который расположен в пакете pkg3, будет выглядеть какpackage pkg1.pkg2.pkg3;class MyClass1 {…}

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

общедоступен, с помощью модификатора доступа public. В этом случае возможен доступ к данному классу из других пакетов.

● В файле .java можно располагать только один общедоступный класс и произвольное число классов с другим уровнем видимости.

● Если модификатор public отсутствует, то доступ к классу разрешён только из классов, находящихся с ним в одном пакете. Про такие файлы говорят, что у них пакетный вариант доступа.

● Импорт классов из пакетов осуществляется с помощью оператора import имяПакета.ИмяКласса или import имяПакета.*

Базовые пакеты и классы Java● Важнейшими пакетами являются java и javax, а также

вложенные в них пакеты. ● java.lang - cодержит базовые классы языка Java.

Автоматически импортируется в любую программу без указания имени пакета.

● java.awt - базовый пакет работы с графическим пользовательским интерфейсом.

● java.io - поддержка базовых средств ввода-вывода. ● java.util- важнейшие классы для работы со структурами

данных ● Информацию о содержащихся в пакетах элементах

можно получить в среде разработки, набрав java. или javax. И прочитав появившуюся подсказку.

Создание в NetBeans простейшего приложения Java● Визуальное проектирование приложения

с графическим интерфейсом пользователя (GUI) происходит в режиме Design.

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

Создание в NetBeans приложения Java, шаг 1

Создание в NetBeans приложения Java, шаг 2

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

Исходный код приложения /* * Main.java * * Created on 21 Июнь 2006 г., 13:08*/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 } }

Компиляция проекта и запуск приложения● Build/ Build Main Project - компиляция (или <F11>, или

иконка с голубой книжкой и гаечным ключом). Будут заново скомпилированы из исходных кодов все классы проекта.

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

● Run/ Run Main Project - запуск приложения (или <F6>, или на панели инструментов иконка с зелёным и жёлтыми треугольниками).

● При запуске приложение автоматически компилируется (но не “строится”).

Выходная консоль

System.out.println("Привет!"); System.out.println("Привет!");Даст текст Привет! Привет!а System.out.print("Привет!"); System.out.print("Привет!");даст Привет!Привет!

Структура проекта NetBeans I

● Source Packages - пакеты исходного кода.● Test Packages - пакеты тестирования.● Libraries – библиотеки.● Test Libraries - библиотеки поддержки

тестирования. ● Ветви дерева представления элементов проекта

можно разворачивать или сворачивать путём нажатия на узлы, отмеченные плюсами и минусами.

Структура проекта NetBeans II

Открытие проекта с существующим кодом

Редактор экранных форм I

Редактор экранных форм II

Назначение обработчика события

Внешний вид приложения

Внешний вид приложенияimport javax.swing.*;import java.awt.*;...public GUI_application() { try{ UIManager.setLookAndFeel(

UIManager.getSystemLookAndFeelClassName() ); }catch(Exception e){}; initComponents(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = getSize(); setLocation(new Point((screenSize.width-frameSize.width)/2, (screenSize.height-frameSize.width)/2 ) );}

Ведение проектовПри получении работоспособной версии проекта следует делать его архивную копию - в открытом проекте в окне “Projects” щелкнуть правой кнопкой мыши по имени проекта, и в появившемся всплывающем меню выбрать пункт “Copy Project”.

Редактирование меню экранной формы

Окно инспектора компонентов Развёрнутое дерево вложенности

Редактирование всплывающего меню

Создание нового класса, шаг 1

Создание нового класса, шаг 2

Заготовка нового класса

Добавление в класс метода. Шаг 1

Добавление в класс метода. Шаг 2

Документирование исходного кода I

● Осуществляется с помощью специальных документационных комментариев /** Текст комментария в формате HTML */ .

● Также имеется ряд команд документации, начинающихся с символа @ .

● Утилита javadoc позволяет по документационным комментариям создавать систему HTML-страниц с документацией о пакетах и классах.

Документирование исходного кода II

Документационные комментарии бывают для:● Пакетов (пока не функционируют).● Классов.● Интерфейсов.● Пользовательских типов-перечислений (на

уровне пакетов пока не функционируют, но можно использовать для типов, заданных в классах).

● Методов.● Переменных.

Команды документации I● @see –создание гиперссылок на другие комментарии. Формат

использования: @see ИмяКласса – для класса; @see ИмяКласса.ИмяПеречисления – для типа-перечисления, заданного в классе; @see ИмяКласса#ИмяЧлена – для метода или переменной; для интерфейса – аналогично классу.

● @version – информация о версии класса или интерфейса. Формат использования: @version Информация в произвольной форме.

● @author - Информация об авторе класса или интерфейса. Формат использования: @author Информация в произвольной форме.

● @since - Информация о версии JDK, с которой введён класс или интерфейс. Формат использования: @since Информация в произвольной форме.

● @param - информация о параметре метода. Формат использования: @param ИмяПараметра Описание.

● @return - информация о возвращаемом методом значении и его типе. Формат использования: @return Информация в произвольной форме.

● @throws - информация об исключениях, которые могут возбуждаться методом. Формат использования: @throws ИмяКлассаИсключения Описание.

● @deprecated - информация о том, что метод устарел. Формат использования: @deprecated Информация в произвольной форме.

Пример документирования исходного кода I

Пример документирования исходного кода II

Пример документирования исходного кода III

Основные компоненты пакетов swing и awt

JLabel, JButton, JToggleButton, JCheckBox, JRadioButton, ButtonGroup, JComboBox, JList, JTextField, JTextArea, JPanel, JTabbedPane, JScrollBar, JScrollPane, JMenuBar, JPopupMenu, JSlider, JProgressBar, JSplitPane, JFormattedTextField, JPasswordField, JSpinner, JSeparator, JTextPane, JEditorPane, JTree, JTable, JToolBar, JInternalFrame, JLayeredPane, JDesktopPane, JOptionPane: Для выдачи пользователю информационного сообщения следует использовать вызов JOptionPane.showMessageDialog(null, "Привет!","Заголовок сообщения", JOptionPane.INFORMATION_MESSAGE).JColorChooser , JFileChooser , JFrame , JDialog.

Выбор менеджера размещения

Установка якорей

Recommended