Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab03.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
114.69 Кб
Скачать

Министерство образования Украины

Харьковский национальный университет радиоэлектроники

ЛАБОРАТОРНАЯ РАБОТА №3

На тему: «Работа с классами»

Студентки гр. ПЗАС 11-1

Вяргизовой Г.А.

Харьков, 2012

Содержание.

  1. Задание 3

  2. Порядок выполнения работы 4

Задание

  • Объявить систему классов: Точка, Прямоугольник, Квадрат, Ромб, Трапеция, Треугольник, Четырехугольник;

  • Определить методы, которые перемещают фигуры по плоскости, изменяют ее размеры и выводят в стандартный выходной поток.

Выполнение работы

Для построения точки необходимо всего несколько параметров: координаты точки - x, y (если в пространстве, то еще z) и её цвет. В случае с фигурами требуется знать (или вычислить по другим данным) несколько точек, цвет линий и цвет заливки.

Учитывая тот момент, что каждая фигура состоит как минимум из одной точки, имеет один цвет линий, можно воспользоваться возможностью наследования классов в Java.

Отновительно методов, реализующих перемещение фигур, необходимо заметить, что их реализация должна предусматривать прорисовку фигуры с новыми координатами точек (смещенных на некое расстояние на плоскости). Эти методы также могут предусматривать изменение размеров фигуры, цвета её линий и заливки. Об изменениях параметров фигур метод будет выводить информацию в стандартный выходной поток.

  • Содержание файла «FigureClass.Java»:

Import java.Awt.Color;

/**

* Базовый класс для описания всех фигур

*/

public class FigureClass {

protected int x;

protected int y;

protected Color color;

/**

* Default constructor

*/

public FigureClass() {

super();

this.x = 0;

this.y = 0;

this.color = new Color (0,0,0);

}

/**

* Constructor

* @param x - Horizontal (Base) point position

* @param y - Vertical (Base) point position

* @param c - Color of point

*/

public FigureClass(int x, int y, Color c) {

super();

this.x = x;

this.y = y;

this.color = c;

}

public int getX() {

return x;

}

public int getY() {

return y;

}

public Color getColor() {

return color;

}

}

В данном классе использовано всего три параметра: координаты (базовой) точки для построения фигуры и цвет точки или линий фигуры.

Собственно класс, описывающий точку, будет полностью наследовать предыдущий класс, и иметь только реализацию методов перемещения объектов.

  • Содержание файла «Point.java»:

Import java.Awt.Color;

/**

* Класс, описывающий объект "Точка"

*/

public class Point extends FigureClass {

/**

* Default constructor

*/

Point () {

super();

this.x = 0;

this.y = 0;

this.color = new Color (0, 0, 0);

}

/**

* Constructor

* @param x - Horizontal (Base) point position

* @param y - Vertical (Base) point position

* @param c - Color of point

*/

Point (int x, int y, Color c) {

super();

this.x = x;

this.y = y;

this.color = c;

System.out.println("Point nas been set to position (x, y) = (" + x + ", " + y + ")");

}

/**

* Move point to new position

* @param x - Horizontal (Base) point position

* @param y - Vertical (Base) point position

* @param c - New color of point (null - no change)

*/

public void moveTo (int x, int y, Color c) {

this.x = x;

this.y = y;

if (c != null)

this.color = c;

System.out.println("Point nas been moved to new position (x, y) = (" + x + ", " + y + ")");

}

}

  • Определимся с прямоугольником. Эту фигуру можно построить различными способами (в зависимости от того, какие данные о нем будут присутствовать). Поскольку в задании неуказанно, какие именно данные о фигуре будут предоставляться, будем считать, что:

    • стороны прямоугольника расположены строго параллельно осям координат;

    • Для фигуры задана левая нижняя точка, которая и будет являться базовой;

    • Заданы длины сторон фигуры;

    • Остальные точки будем рассчитывать по длине сторон прямоугольника.

Реализация класса «Rectangle.java» будет следующей:

Import java.Awt.Color;

/**

* Класс, описывающий "Прямоугольник"

*/

class Rectangle extends FigureClass {

protected int width;

protected int height;

protected Color bgColor;

public int getWidth() {

return width;

}

public int getHeight() {

return height;

}

public Color getBgColor() {

return bgColor;

}

/**

* Drawing Rectangle

* @param x - Horizontal (Base) point position

* @param y - Vertical (Base) point position

* @param height - Height

* @param width - Width

* @param bgColor - Fill color

* @param borderColor - Border color

*/

Rectangle (int x, int y, int height, int width, Color bgColor, Color borderColor) {

super();

this.x = x;

this.y = y;

this.height = height;

this.width = width;

this.color = borderColor;

this.bgColor = bgColor;

System.out.println("Rectangle nas been drawed from position (x, y) = (" + x + ", " + y + ") with height, width = (" + height +", " + width + ")");

}

/**

* Move Rectangle to new position with NO change others parameters

* @param x - New Horizontal (Base) point position

* @param y - New Vertical (Base) point position

*/

public void moveTo (int x, int y) {

this.x = x;

this.y = y;

System.out.println("Rectangle nas been moved to new position (x, y) = (" + x + ", " + y + ")");

}

/**

* reDraw Rectangle to new position with change others parameters

* @param x - New Horizontal (Base) point position

* @param y - New Vertical (Base) point position

* @param height - New Height

* @param width - New Width

* @param bgColor - New Fill color

* @param borderColor - New Border color

*/

public void reDraw (int x, int y, int height, int width, Color bgColor, Color borderColor) {

this.x = x;

this.y = y;

this.height = height;

this.width = width;

if (bgColor != null) this.bgColor = bgColor;

if (borderColor != null) this.color = borderColor;

System.out.println("Rectangle nas been moved to new position (x, y) = (" + x + ", " + y + ") with new height, width = (" + height + ", " + width + ")");

}

}

  • Квадрат будем строить аналогично прямоугольнику – по базовой точке и длине сторон (в этом случае они одинаковы) Реализация класса «Square.java»:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]