- •Основы объектно-ориентированного программирования
- •Оглавление
- •Тема 1. Введение в предмет и содержание дисциплины 4
- •Теоретический раздел
- •Тема 1. Введение в предмет и содержание дисциплины
- •Особенности Java
- •Комментарии
- •Ключевые слова
- •Литералы
- •Установка Java в переменных окружениях
- •Некоторые из особенностей элементов Java
- •Символы, строки и идентификаторы
- •Разделители
- •Операции
- •Основные приложения Java
- •Метод update()
- •Требование перерисовки
- •Тема 3. Введение в классы java. Методы и классы. Классы и наследование в java. Пакеты и интерфейсы Введение в классы Java
- •Синтаксис определения экземпляра класса
- •Модификаторы класса
- •Конструкторы
- •Ограничение доступа к элементам класса
- •Статические переменные и методы
- •Абстрактные методы
- •Методы final
- •Область видимости переменных
- •Переменные this и super
- •Тема 4. Основы ввода/вывода. Работа со строковыми данными Работа со строками
- •Потоки ввода-вывода информации
- •Байтовые и символьные потоки
- •Классы байтовых потоков
- •Классы символьных потоков
- •Предопределённые потоки
- •Тема 5. Работа с файлами Классы FileInputStream и FileOutputStream
- •Класс File
- •Класс RandomAccessFile
- •Тема 6. Методы и средства обработки исключений Методы и средства обработки исключений
- •Тема 7. Разработка апплетов, работа с графикой
- •Пакет awt
- •Класс Applet
- •Инициализация и завершение апплета
- •Запуск апплетов
- •Рисование линий в апплете
- •Рисование прямоугольников в апплете
- •Рисование эллипсов и кругов в апплете
- •Рисование дуг в апплете
- •Работа с цветом
- •Тема 8. Многопоточное программирование Интерфейсы в Java
- •Многопоточное программирование
- •Организация потоков
- •Создание нового потока
- •Тема 9. Разработка пользовательского интерфейса с использованием фреймов, элементов управления
- •События
- •Классы событий
- •Класс ActionEvent
- •Элементы-источники событий
- •Интерфейсы прослушивания событий
- •Классы пакета awt: Component, Window, Frame
- •Элементы управления Label, Button, Checkbox, Choice, List, Scrollbar
- •Элементы управления TextField и TextArea
- •Диалоговые окна
- •Контроль знаний Индивидуальная практическая работа № 1. «Объекты и классы»
- •Индивидульная практическая работа № 2. «Наследование и скрытие данных. Абстрактные классы и интерфейсы»
- •Контрольная работа № 1. «Работа с файлами»
- •Контрольная работа № 2. «Разработка пользовательского интерфейса с использованием фреймов, элементов управления»
- •Список использованных источников
Диалоговые окна
Диалоговые окна подобны фрейм-окнам за исключением того, что они – всегда дочерние окна для окна верхнего уровня. Кроме того, диалоговые окна не имеют строки меню. В других отношениях они функционируют подобно фреймовым окнам. Можно, например, добавить к ним элементы управления тем же способом, каким добавляются элементы управления к фреймовому окну. Диалоговые окна могут быть модальными или немодальными. Когда модальное диалоговое окно активно, весь ввод направляется к нему, пока оно не будет закрыто. Это означает, что невозможно обратиться к другим частям программы до тех пор, пока не закрыто диалоговое окно. Когда немодальное диалоговое окно активно, фокус ввода может быть направлен другому окну программы. Таким образом, другие части программы остаются активными и доступными. Диалоговые окна обслуживает класс Dialog. Обычно используются следующие конструкторы класса:
Dialog(Frame parentWindow, boolean mode);
Dialog(Frame parentWindow, String title, boolean mode);
parentWindow – владелец диалогового окна. Если mode имеет значение true, диалоговое окно является модальным. Иначе оно немодальное. Заголовок диалогового окна можно передать через параметр title.
Следующий пример демонстрирует фреймовое окно с меню, из которого (выбором пунтов меню File→DemoDialog) вызывается модальное диалоговое окно.
Пример 3.8
Листинг Frame1.java
import java.awt.*;
import java.awt.event.*;
public class Frame1 extends Frame
implements ActionListener,WindowListener{
Menu file;MenuItem item1;
public Frame1(){
super("Фреймовое окно с меню");
setSize(500,300);
//создать строку главного меню и добавить его во фрейм
MenuBar mbar=new MenuBar();
setMenuBar(mbar);
//создать элемент меню
file=new Menu("File");
mbar.add(file);
file.add(item1=new MenuItem("DemoDialog"));
item1.addActionListener(this);
setVisible(true);
addWindowListener(this);
}
public void actionPerformed(ActionEvent ae) {
DemoDialog d=new DemoDialog(this,"Диалоговое окно",true);
}
public void windowClosing(WindowEvent we){
this.dispose();
}
public void windowActivated(WindowEvent we){};
public void windowClosed(WindowEvent we){};
public void windowDeactivated(WindowEvent we){};
public void windowDeiconified(WindowEvent we){};
public void windowIconified(WindowEvent we){};
public void windowOpened(WindowEvent we){};
public static void main(String args[])
{Frame1 f=new Frame1();
}
class DemoDialog extends Dialog implements ActionListener{
Button btn;
public DemoDialog(Frame1 ff, String title,boolean b){
super(ff,title,b);
setLayout(new FlowLayout(FlowLayout.LEFT));
btn=new Button("Закрыть");
setSize(300,200);
add(btn);
btn.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent ae){
this.dispose();
}
}
}
На рисунке 3.2 показан результат работы программы:
Рис. 3.2. Результат работы программы, приведенной в листинге Frame1.java
Контроль знаний Индивидуальная практическая работа № 1. «Объекты и классы»
Цель: Изучить особенности создания классов и их объектов в Java.
Индивидуальные задания (вариант индивидуального задания выбирать следующим образом. Если две последние цифры зачетки больше 17, то его нужно разделить на 17, полученный остаток от деления это и есть ваш вариант)
А) Создать объект класса согласно заданию. Инициализацию значений полей осуществить с помощью конструктора. В классе предусмотреть 2-3 метода, осуществляющие вывод на экран монитора соответствующую информацию о классе.
Б) Задание А модифицировать: предусмотреть перегруженные конструкторы. Создать второй класс WriterInfo, выводящий на экран монитора соответствующую информацию о классе (используя уже созданные методы класса).
1. Состав класса Stock (склад): наименование товара, его стоимость, наличие товара на складе.
2. Состав класса Student (студент): фамилия, возраст, наличие задолженностей.
3. Состав класса Music (музыкальное произведение): название произведения, количество проданных копий, возможность скачать mp3 в интернете.
4. Состав класса Product (продукт): название продукта, наличие в магазине, цена.
5. Состав класса Drugstore (аптека): фамилия владельца, наличие лицензии, месячная прибыль.
6. Состав класса Book (книга): название, цена, наличие иллюстраций.
7. Состав класса Race (гонки): дата соревнования в виде символьной строки (год, месяц и день), количество участников, наличие приза.
8. Состав класса Ward (больничная палата): количество мест, фамилия врача, наличие свободных коек.
9. Состав класса Tribe (племя): название, численность. знакомство с огнем.
10. Состав класса Patient (пациент): фамилия, пол, возраст.
11. Состав класса Employee (служащий): фамилия, зарплата, наличие детей.
12. Состав класса Manager (управляющий): фамилия, возраст, справляется ли с обязанностями.
13. Состав класса Icecream (мороженое): название, наличие шоколада, процент жирности.
14. Состав класса Person (индивидуум): фамилия, возраст, пол. Подсчитать средний возраст и количество мужчин.
15. Состав класса Butter (масло): название, наличие растительных добавок, цена.
16. Состав класса City (город): название, население, площадь.
17. Состав класса Milk (молоко): название, жирность в процентах, наличие на складе.
