Об'єктно-орієнтоване програмування Java2
Лабораторнаробота№З Застосуванняспадкуваннякласів.
Програмування Java-аплетів
1. Скласти програму Java-аплет,
що зображує у вікні аплету рисунок фігури відповідно до
варіанту та дозволяє користувачу управляти
розміром, положенням та кутом повороту
фігури за допомогою клавіатури.
2. Фігура
повинна бути реалізованою, як група об'єктів, що є екземплярами
класів-спадкоємців
одного з класів наведеної нижче ієрархії:
Класи цієї ієрархії знаходяться кожен у своїм файлі (файл повинен мати ім'я, що співпадає з іменем класу, що реалізований у ньому). (Можна створити свою власну ієрархію класів, але їх повинно бути не менше трьох)
Файл Location. Java:
/** КласLocation- базовийкласієрархії
* вінєспадкоємцемабстрактногоклсауObject
* наосновіньогобудуємосвоюієрархію
*/
class Location {
privateintx, у; // Приватнідані - координатиоб'єкта
/** КонструкторкласуLocation */ public Location(int ax, int ay) {
x = ax; у =ау; }
/** ВідкритіреалізованіметодикласуLocation */ public int getX() { return x; }
public int getY() { return y; }
public void setX(int newX) { x = newX; }
public void setY(int newY) { у = newY; }
public void moveBy(int dx, int dy) { x += dx; у += dy; }
}
Об'єктно-орієнтоване програмування Java2
Файл Point.Java import j ava.awt.*;
/** КласPoint - наступнийкласієрархії
* вінєспадкоємцемкласуLocation
* вінможеперемішуватисьпоекрануівідображатисьнаньому
*/
class Point extends Location {
private boolean visible; // Приватніданіоб'єктукласуTPoint: private Color col; // Коліртаознакавидимості
/** КонструкторкласуPoint */
public Point(int ax, int ay, Color acol) {
super(ax,ay); // Викликуспадкованогоконструктора
col = acol;
visible = true; }
/** Відкритіметодиоб'єктукласуPoint */ public boolean isVisible() { return visible; }
public void setvisible(boolean avis) { visible = avis; }
public void moveBy(int dx, int dy) {
setvisible(false);
super.moveBy(dx,dy);
setvisible(true); }
public void setColor(Color newCol) { col = newCol; } public Color getColor() { return col; }
/** Відкритийметодdraw, йогобудевикликатиаплет, щоміститьТочку * дляїївідображенняусвоємувікні */
public void draw(Graphics g) { if (isVisible()) { g.setColor (col);
g.drawLine(getx(),getY(),getx(),getY()); } } }
2
Об'єктно-орієнтоване програмування Java2
Файл Circle.Java import j ava.awt.*;
/** КласCircle - наступнийкласієрархії
* вінєспадкоємцемкласуPointі, крімтогощоможепредок,
* вінможезмінюватирозмір,
атакожвідображаєтьсяіншимспособом
*/
class Circle extends Point {
private int radius; // приватнідані - радіускола
/** Конструктороб'єктуКоло */
public Circle(int ax, int ay, int aradius, Color acol) {
super(ax,ay,acol); // Викликаємоконструкторпредка (класуPoint)
radius = aradius; }
/** ВідкритіметодикласуCircle*/
publicvoidsetRadius(intnewRadius) { // ВстановитиновийрадіусКола
radius = newRadius; }
publicintgetRadius() { // ОтриматирадіусКола
returnradius; }
/** Відкритийметодdraw, йогобудевикликатиаплет, щоміститьКоло * дляйоговідображенняусвоємувікні */
public void draw(Graphics g) { if (isVisible()) {
g.setColor(getColor());
g.drawOval(getx()-radius, getx()-radius, radius*2, radius*2); } } }
Короткі теоретичні відомості
Огляд структури Java-аплету
Програміст може реалізувати п'ять методів "життєвого циклу" об'єкта Applet (точніше, його спадкоємця): init(), startQ, stop(), destroy(). Життєвий цикл аплету складніший, ніж у звичайного додатку (рос. приложения), оскільки користувач може заставити броузер перейти до нової сторінки, повернутися до попередньої, перезавантажити поточну сторінку і т.п. Що ж робити бідному аплету?
Аплети зазвичай використовують метод init() для ініціалізації свого стану, з тією ж самою функцією, як і у конструктора в класі, що не є аплетом. Це є обов'язковим, бо в конструкторі аплету не можна використовувати методи, що є специфічними для аплету, наприклад, getParameter().
Метод start() викликається, коли броузер повністю завантажив аплет і готовий до його виконання. Зазвичай саме в цей момент аплет запускає ниті, завантажує аудіо чи відео, або виконує операції, що займають відносно великий час.
Метод stop() викликається, коли користувач покидає сторінку.
Останнім методом атлета, що часто використовується, є destroy(), який викликається тоді, коли броузер видаляє аплет з пам'яті і дозволяє закрити файли, мережеві з'єднання.
Метод paint(Graphics g) викликається кожен раз тоді, коли аплету потрібно перерисувати вміст свого вікна, тобто, якщо Вам потрібно, щоб у вікні атлета щось відображалося, помістіть відповідний код в цей метод.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.