Как правильно организовать иерархию классов и методов квадрата? Нужно разработать класс Квадрат, линия и точка. Квадрат должен иметь методы: изменить размер, повернуть. Сделать это нужно без графического интерфейса. Нужно просто выводить координаты или коэффициент изменения. Я не знаю как более просто можно это все организовать. Получается пока что как то так:package com.company;
import java.util.ArrayList;
import java.util.List;
class Rect{
private int size = 0;
private int rot = 0;
List lines;
public Rect(){}
public Rect(int _size){
this.size = _size;
lines = new ArrayList();
Line lines1 = new Line(0,0, 0, _size);
lines.add(lines1);
Line lines2 = new Line(0, _size, _size, _size);
lines.add(lines2);
Line lines3 = new Line(_size , _size, _size, _size);
lines.add(lines3);
Line lines4 = new Line(_size,0, 0,0);
lines.add(lines4);
}
public void setSize(int _size) {
this.size = _size;
for(int i = 0; i dots;
public Line(){
}
public Line(int x1, int y1, int x2, int y2) {
dot1 = new Dot(x1, y1);
dot2 = new Dot(x2, y2);
dots = new ArrayList();
dots.add(dot1);
dots.add(dot2);
}
public void setLine(int x1, int y1, int x2, int y2) {
dots = new ArrayList();
dot1.setX(x1);
dot1.setY(y1);
dot2.setX(x2);
dot2.setY(y2);
dots.add(dot1);
dots.add(dot2);
}
public List getLine()
{
return dots;
}
}
public class Main {
public static void main(String[] args) {
Rect rect = new Rect(10);
rect.setSize(12);
}
}
Но столкнулся с проблемами когда не могу изменить текущие координаты и т.д. Скорее всего я не правильно организовал структуру. Помогите новичку

21 Авг 2019 в 07:00
164 +1
1
Ответы
1

Давайте пересмотрим вашу структуру классов и методов для более правильной организации иерархии.

Для начала, создадим класс Point, который будет представлять точку на плоскости с координатами x и y. У точки будет метод для изменения координат.

Затем создадим класс Line, который будет представлять отрезок между двумя точками, которые его определяют. Этот класс также будет иметь метод для изменения координат точек.

Наконец, создадим класс Square, который будет представлять квадрат как набор четырех линий. У квадрата будет метод для изменения размера и поворота, который будет влиять на его составляющие линии.

Вот пример новой структуры классов:

class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public void setCoordinates(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return "(" + x + ", " + y + ")";
}
}
class Line {
private Point start;
private Point end;
public Line(Point start, Point end) {
this.start = start;
this.end = end;
}
public void setPoints(Point start, Point end) {
this.start = start;
this.end = end;
}
@Override
public String toString() {
return start.toString() + " - " + end.toString();
}
}
class Square {
private Line top;
private Line right;
private Line bottom;
private Line left;
public Square(Point topLeft, int size) {
Point topRight = new Point(topLeft.getX() + size, topLeft.getY());
Point bottomLeft = new Point(topLeft.getX(), topLeft.getY() + size);
Point bottomRight = new Point(topLeft.getX() + size, topLeft.getY() + size);
top = new Line(topLeft, topRight);
right = new Line(topRight, bottomRight);
bottom = new Line(bottomRight, bottomLeft);
left = new Line(bottomLeft, topLeft);
}
public void resize(int newSize) {
// Изменение размера квадрата и всех его линий
}
public void rotate(int degrees) {
// Поворот квадрата и всех его линий на заданный угол
}
@Override
public String toString() {
return "Square:\n" + top.toString() + "\n" + right.toString() + "\n" + bottom.toString() + "\n" + left.toString();
}
}

Данный код позволяет более гибко управлять точками, линиями и квадратом. Также он обеспечивает более четкую структуру иерархии классов для работы с геометрическими фигурами.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир