SlideShare a Scribd company logo
1 of 41
Download to read offline
Глава 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
Документационные комментарии бывают для:
●
  Пакетов (пока не функционируют).
●
  Классов.
●
  Интерфейсов.
●
  Пользовательских типов-перечислений (на
  уровне пакетов пока не функционируют, но
  можно использовать для типов, заданных в
  классах).
●
  Методов.
●
  Переменных.
●
    @see –создание гиперссылок на другие комментарии. Формат
                Команды документации I
    использования: @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.
Выбор менеджера размещения
Установка якорей

More Related Content

What's hot

C++ осень 2013 лекция 5
C++ осень 2013 лекция 5C++ осень 2013 лекция 5
C++ осень 2013 лекция 5Technopark
 
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.C# Desktop. Занятие 02.
C# Desktop. Занятие 02.Igor Shkulipa
 
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.Igor Shkulipa
 
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»Unguryan Vitaliy
 
C++ осень 2013 лекция 3
C++ осень 2013 лекция 3C++ осень 2013 лекция 3
C++ осень 2013 лекция 3Technopark
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoFUnguryan Vitaliy
 
C# Desktop. Занятие 04.
C# Desktop. Занятие 04.C# Desktop. Занятие 04.
C# Desktop. Занятие 04.Igor Shkulipa
 
Java осень 2014 занятие 3
Java осень 2014 занятие 3Java осень 2014 занятие 3
Java осень 2014 занятие 3Technopark
 
Java осень 2014 занятие 5
Java осень 2014 занятие 5Java осень 2014 занятие 5
Java осень 2014 занятие 5Technopark
 
C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.Igor Shkulipa
 
C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7Technopark
 
Java Core. Lecture# 1. Intro
Java Core. Lecture# 1. IntroJava Core. Lecture# 1. Intro
Java Core. Lecture# 1. IntroAnton Moiseenko
 
C++ Базовый. Занятие 11.
C++ Базовый. Занятие 11.C++ Базовый. Занятие 11.
C++ Базовый. Занятие 11.Igor Shkulipa
 
Шаблоны разработки ПО. Часть 3. Шаблоны GoF
Шаблоны разработки ПО. Часть 3. Шаблоны GoFШаблоны разработки ПО. Часть 3. Шаблоны GoF
Шаблоны разработки ПО. Часть 3. Шаблоны GoFSergey Nemchinsky
 
C++ осень 2013 лекция 8
C++ осень 2013 лекция 8C++ осень 2013 лекция 8
C++ осень 2013 лекция 8Technopark
 
Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.Anton Moiseenko
 
C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.Igor Shkulipa
 

What's hot (18)

C++ осень 2013 лекция 5
C++ осень 2013 лекция 5C++ осень 2013 лекция 5
C++ осень 2013 лекция 5
 
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.C# Desktop. Занятие 02.
C# Desktop. Занятие 02.
 
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
 
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»
 
C++ осень 2013 лекция 3
C++ осень 2013 лекция 3C++ осень 2013 лекция 3
C++ осень 2013 лекция 3
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoF
 
C# Desktop. Занятие 04.
C# Desktop. Занятие 04.C# Desktop. Занятие 04.
C# Desktop. Занятие 04.
 
Java осень 2014 занятие 3
Java осень 2014 занятие 3Java осень 2014 занятие 3
Java осень 2014 занятие 3
 
Java осень 2014 занятие 5
Java осень 2014 занятие 5Java осень 2014 занятие 5
Java осень 2014 занятие 5
 
C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.C++ STL & Qt. Занятие 02.
C++ STL & Qt. Занятие 02.
 
C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7
 
Java Core. Lecture# 1. Intro
Java Core. Lecture# 1. IntroJava Core. Lecture# 1. Intro
Java Core. Lecture# 1. Intro
 
C++ Базовый. Занятие 11.
C++ Базовый. Занятие 11.C++ Базовый. Занятие 11.
C++ Базовый. Занятие 11.
 
Шаблоны разработки ПО. Часть 3. Шаблоны GoF
Шаблоны разработки ПО. Часть 3. Шаблоны GoFШаблоны разработки ПО. Часть 3. Шаблоны GoF
Шаблоны разработки ПО. Часть 3. Шаблоны GoF
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
C++ осень 2013 лекция 8
C++ осень 2013 лекция 8C++ осень 2013 лекция 8
C++ осень 2013 лекция 8
 
Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.
 
C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.
 

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

системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектовRomero78
 
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Fedor Lavrentyev
 
презентация конспекта лекций
презентация конспекта лекцийпрезентация конспекта лекций
презентация конспекта лекцийstudent_kai
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в MagentoPavel Usachev
 
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.Igor Shkulipa
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Dev_Party
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftAnton Loginov
 
ук 03.003.01 2011
ук 03.003.01 2011ук 03.003.01 2011
ук 03.003.01 2011etyumentcev
 
Среда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekСреда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekYa_Cheburek
 
Введение в maven
Введение в mavenВведение в maven
Введение в mavenDmitry Zinushin
 
«трудности при разработке сложных распределённых систем на Java. способы реше...
«трудности при разработке сложных распределённых систем на Java. способы реше...«трудности при разработке сложных распределённых систем на Java. способы реше...
«трудности при разработке сложных распределённых систем на Java. способы реше...MDDay_4
 
Алексей Иванов -- курс по стыку системной и программной инженерий
Алексей Иванов -- курс по стыку системной и программной инженерийАлексей Иванов -- курс по стыку системной и программной инженерий
Алексей Иванов -- курс по стыку системной и программной инженерийAnatoly Levenchuk
 
C++ осень 2013 лекция 4
C++ осень 2013 лекция 4C++ осень 2013 лекция 4
C++ осень 2013 лекция 4Technopark
 

Similar to Глава 2: Среда разработки NetBeans (20)

системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектов
 
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
 
Классы и объекты С#
Классы и объекты С#Классы и объекты С#
Классы и объекты С#
 
Java 9 - кратко о новом
Java 9 -  кратко о новомJava 9 -  кратко о новом
Java 9 - кратко о новом
 
презентация конспекта лекций
презентация конспекта лекцийпрезентация конспекта лекций
презентация конспекта лекций
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
 
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.
 
Tdd php
Tdd phpTdd php
Tdd php
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на Swift
 
лек13 3
лек13 3лек13 3
лек13 3
 
ук 03.003.01 2011
ук 03.003.01 2011ук 03.003.01 2011
ук 03.003.01 2011
 
Genome
GenomeGenome
Genome
 
Java 9 - Back to the Future
Java 9 - Back to the FutureJava 9 - Back to the Future
Java 9 - Back to the Future
 
Среда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekСреда разработки Eclipse by Cheburek
Среда разработки Eclipse by Cheburek
 
Введение в maven
Введение в mavenВведение в maven
Введение в maven
 
«трудности при разработке сложных распределённых систем на Java. способы реше...
«трудности при разработке сложных распределённых систем на Java. способы реше...«трудности при разработке сложных распределённых систем на Java. способы реше...
«трудности при разработке сложных распределённых систем на Java. способы реше...
 
create_package_1.pdf
create_package_1.pdfcreate_package_1.pdf
create_package_1.pdf
 
Алексей Иванов -- курс по стыку системной и программной инженерий
Алексей Иванов -- курс по стыку системной и программной инженерийАлексей Иванов -- курс по стыку системной и программной инженерий
Алексей Иванов -- курс по стыку системной и программной инженерий
 
C++ осень 2013 лекция 4
C++ осень 2013 лекция 4C++ осень 2013 лекция 4
C++ осень 2013 лекция 4
 

More from metaform

Приступаем к разработке Android приложений
Приступаем к разработке Android приложенийПриступаем к разработке Android приложений
Приступаем к разработке Android приложенийmetaform
 
обработка исключений в Java
обработка исключений в Javaобработка исключений в Java
обработка исключений в Javametaform
 
создание живых сайтов
создание живых сайтовсоздание живых сайтов
создание живых сайтовmetaform
 
Составление резюме
Составление резюмеСоставление резюме
Составление резюмеmetaform
 
Коллекции в Java
Коллекции в JavaКоллекции в Java
Коллекции в Javametaform
 
Массивы в Java
Массивы в JavaМассивы в Java
Массивы в Javametaform
 
Базовые операторы Java
Базовые операторы JavaБазовые операторы Java
Базовые операторы Javametaform
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Javametaform
 
Глава1: Обзор технологии Java
Глава1: Обзор технологии JavaГлава1: Обзор технологии Java
Глава1: Обзор технологии Javametaform
 
Мастерство речи, искусство презентации
Мастерство речи, искусство презентацииМастерство речи, искусство презентации
Мастерство речи, искусство презентацииmetaform
 

More from metaform (10)

Приступаем к разработке Android приложений
Приступаем к разработке Android приложенийПриступаем к разработке Android приложений
Приступаем к разработке Android приложений
 
обработка исключений в Java
обработка исключений в Javaобработка исключений в Java
обработка исключений в Java
 
создание живых сайтов
создание живых сайтовсоздание живых сайтов
создание живых сайтов
 
Составление резюме
Составление резюмеСоставление резюме
Составление резюме
 
Коллекции в Java
Коллекции в JavaКоллекции в Java
Коллекции в Java
 
Массивы в Java
Массивы в JavaМассивы в Java
Массивы в Java
 
Базовые операторы Java
Базовые операторы JavaБазовые операторы Java
Базовые операторы Java
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Java
 
Глава1: Обзор технологии Java
Глава1: Обзор технологии JavaГлава1: Обзор технологии Java
Глава1: Обзор технологии Java
 
Мастерство речи, искусство презентации
Мастерство речи, искусство презентацииМастерство речи, искусство презентации
Мастерство речи, искусство презентации
 

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

  • 1. Глава 2. Объектно-ориентированное проектирование и платформа NetBeans ● Процедурное и объектно-ориентированное программирование. Инкапсуляция ● Работа со ссылочными переменными. Сборка мусора ● Проекты NetBeans. Пакеты. Уровни видимости классов. Импорт классов ● Базовые пакеты и классы Java ● Создание в NetBeans простейшего приложения Java ● Компиляция файлов проекта и запуск приложения Курс подготовлен при поддержке Sun Microsystems Правила использования материалов опубликованы на www.sun.ru
  • 2. Глава 2. Объектно-ориентированное проектирование и платформа NetBeans (продолжение) ● Структура проекта NetBeans Создание в NetBeans приложения Java с графическим интерфейсом ● Редактор экранных форм ● Внешний вид приложения ● Ведение проектов ● Редактирование меню экранной формы ● Создание нового класса ● Документирование исходного кода ● Основные компоненты пакетов swing и awt ● Технологии Java и .Net
  • 3. Процедурное и объектно-ориентированное программирование. Инкапсуляция ● Три базовых принципа объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. ● Класс – это описание того, как устроен объект. И поля данных, и методы задаются в классах. Но при выполнении программы поля данных хранятся в объектах, а методы – в классах. Методы задают поведение объекта, а поля данных - состояние объекта. ● Переменные, описываемые в классах, называются глобальными. Они задают поля данных объектов. Переменные, описываемые в методах, называются локальными. Они являются вспомогательными и существуют только во время вызова метода.
  • 4. Классы и объекты. Работа со ссылочными ● Объект создаётся с помощью вызова конструктора - специальной подпрограммы-функции,мусора в переменными. Сборка задаваемой классе. ● Методы делятся на методы объектов и методы классов. Метод объекта можно вызывать только из объекта соответствующего типа. А метод класса может работать и при отсутствии объекта, и вызываться из класса. ● Переменные ссылочного типа содержат адреса данных, а не сами данные. Поэтому присваивания для таких переменных меняют адреса, но не данные. Все объектные типы являются ссылочными. ● Потеря ссылки на объект приводит к сборке мусора.
  • 5. Работа со ссылочными переменными. Сборка мусора I Данные Объект1 Адрес Ссылочная переменная
  • 6. Работа со ссылочными переменными. Сборка мусора II Данные1 Объект1- мусор Адрес Данные2 Ссылочная переменная Объект2
  • 7. Проекты NetBeans. Пакеты ● Основой разработки программы является проект - набор файлов и папок заданной структуры. ● Все классы и объекты приложения вызываются и управляются из метода main, который имеет сигнатуру public static void main(String[] args). Он является методом класса, и поэтому для его работы нет необходимости в создании объекта, являющегося экземпляром класса. ● Объявление, что класс с именем MyClass1 находится в пакете pkg3, находящемся в пакете pkg2, который расположен в пакете pkg3, будет выглядеть как package pkg1.pkg2.pkg3; class MyClass1 { … }
  • 8. Уровни видимости классов. Импорт классов ● При декларации класса можно указывать, что он общедоступен, с помощью модификатора доступа public. В этом случае возможен доступ к данному классу из других пакетов. ● В файле .java можно располагать только один общедоступный класс и произвольное число классов с другим уровнем видимости. ● Если модификатор public отсутствует, то доступ к классу разрешён только из классов, находящихся с ним в одном пакете. Про такие файлы говорят, что у них пакетный вариант доступа. ● Импорт классов из пакетов осуществляется с помощью оператора import имяПакета.ИмяКласса или import имяПакета.*
  • 9. Базовые пакеты и классы Java ● Важнейшими пакетами являются java и javax, а также вложенные в них пакеты. ● java.lang - cодержит базовые классы языка Java. Автоматически импортируется в любую программу без указания имени пакета. ● java.awt - базовый пакет работы с графическим пользовательским интерфейсом. ● java.io - поддержка базовых средств ввода-вывода. ● java.util- важнейшие классы для работы со структурами данных ● Информацию о содержащихся в пакетах элементах можно получить в среде разработки, набрав java. или javax. И прочитав появившуюся подсказку.
  • 10. Создание в NetBeans простейшего приложения Java ● Визуальное проектирование приложения с графическим интерфейсом пользователя (GUI) происходит в режиме Design. ● Как правило, основой для построения такого интерфейса служат компоненты Swing.
  • 11. Создание в NetBeans приложения Java, шаг 1
  • 12. Создание в NetBeans приложения Java, шаг 2
  • 13. Создание в NetBeans простейшего приложения Java
  • 14. Исходный код приложения /* * 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 } }
  • 15. Компиляция проекта и запуск приложения ● Build/ Build Main Project - компиляция (или <F11>, или иконка с голубой книжкой и гаечным ключом). Будут заново скомпилированы из исходных кодов все классы проекта. ● Build/ Generate Javadoc for “JavaApplication1” - создание документации по проекту. Из исходных кодов классов выбирается информация, заключённая в документационные комментарии /** … */, и на её основе создаётся гипертекстовый HTML-документ. ● Run/ Run Main Project - запуск приложения (или <F6>, или на панели инструментов иконка с зелёным и жёлтыми треугольниками). ● При запуске приложение автоматически компилируется (но не “строится”).
  • 16. Выходная консоль System.out.println("Привет!"); System.out.println("Привет!"); Даст текст Привет! Привет! а System.out.print("Привет!"); System.out.print("Привет!"); даст Привет!Привет!
  • 17. Структура проекта NetBeans I ● Source Packages - пакеты исходного кода. ● Test Packages - пакеты тестирования. ● Libraries – библиотеки. ● Test Libraries - библиотеки поддержки тестирования. ● Ветви дерева представления элементов проекта можно разворачивать или сворачивать путём нажатия на узлы, отмеченные плюсами и минусами.
  • 19. Открытие проекта с существующим кодом
  • 24. Внешний вид приложения 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 ) ); }
  • 25. Ведение проектов При получении работоспособной версии проекта следует делать его архивную копию - в открытом проекте в окне “Projects” щелкнуть правой кнопкой мыши по имени проекта, и в появившемся всплывающем меню выбрать пункт “Copy Project”.
  • 26. Редактирование меню экранной формы Окно инспектора компонентов Развёрнутое дерево вложенности
  • 31. Добавление в класс метода. Шаг 1
  • 32. Добавление в класс метода. Шаг 2
  • 33. Документирование исходного кода I ● Осуществляется с помощью специальных документационных комментариев /** Текст комментария в формате HTML */ . ● Также имеется ряд команд документации, начинающихся с символа @ . ● Утилита javadoc позволяет по документационным комментариям создавать систему HTML-страниц с документацией о пакетах и классах.
  • 34. Документирование исходного кода II Документационные комментарии бывают для: ● Пакетов (пока не функционируют). ● Классов. ● Интерфейсов. ● Пользовательских типов-перечислений (на уровне пакетов пока не функционируют, но можно использовать для типов, заданных в классах). ● Методов. ● Переменных.
  • 35. @see –создание гиперссылок на другие комментарии. Формат Команды документации I использования: @see ИмяКласса – для класса; @see ИмяКласса.ИмяПеречисления – для типа-перечисления, заданного в классе; @see ИмяКласса#ИмяЧлена – для метода или переменной; для интерфейса – аналогично классу. ● @version – информация о версии класса или интерфейса. Формат использования: @version Информация в произвольной форме. ● @author - Информация об авторе класса или интерфейса. Формат использования: @author Информация в произвольной форме. ● @since - Информация о версии JDK, с которой введён класс или интерфейс. Формат использования: @since Информация в произвольной форме. ● @param - информация о параметре метода. Формат использования: @param ИмяПараметра Описание. ● @return - информация о возвращаемом методом значении и его типе. Формат использования: @return Информация в произвольной форме. ● @throws - информация об исключениях, которые могут возбуждаться методом. Формат использования: @throws ИмяКлассаИсключения Описание. ● @deprecated - информация о том, что метод устарел. Формат использования: @deprecated Информация в произвольной форме.
  • 39. Основные компоненты пакетов 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.