Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- По 2й лабе:
- Создать иерархию графических классов в соответствии с рисунком (или использовать свой вариант)…………
- ТОЧКА ОКРУЖНОСТЬ ЭЛЛИПС
- ОТРЕЗОК ТРЕУГОЛЬНИК
- ПРЯМОУГОЛЬНИК
- …………………………………………………………
- В общем, тема пройденная.
- абстрактный класс Shape.
- от него можно уже чего-то наследовать.
- Окружность может быть частным случаем ( а значит потомком ) эллипса.
- Все остальные иерархиями не связаны.
- Точка — особый случай, она может быть частью других фигур.
- */
- public abstract class Shape {
- public abstract void draw(Graphics g);
- }
- public class Point extends Shape {
- private int xCoord;
- private int yCoord;
- public Point(x,y) {
- this.xCoord = x;
- this.yCoord = y;
- }
- public void draw(Graphcs g) {
- // тут она как-то рисуется…
- }
- }
- public class Ellipse extends Shape {
- private Point radius1;
- private Point radius2;
- private float length;
- // Емнип, элипс определяется 2-мя радиусами
- // суммой расстояний от окружности до радиусов.
- public Ellipse(Point rad1, Point rad2, float len) {
- this.radius1 = rad1;
- this.radius2 = rad2;
- this.length = len;
- }
- public void draw(Graphcs g) {
- // тут она как-то рисуется…
- }
- }
- public class Circle extends Ellipse {
- // Круг это элипс с совпадающими радиусами.
- public Circle(Point rad, float len) {
- super(rad, rad, len);
- }
- //Его, даже, рисовать не нужно.
- //public void draw(Graphcs g) {}
- }
- /*
- Отрезок, треугольник, прямоугольник — аналогично.
- Отрезок соединяет 2 точки,
- Треугольник 3, Прямоугольник 4.
- Тащить отрезки в прямоугольник, имхо, не нужно.
- Не знаю, на кой хрен пихать сюда статические методы.
- Но например, ты можешь сдалать так же, как сделали с яблоками-лимонами.
- фабричный метод ( статический ) , который создаёт фигуры.
- Он может их случайными создавать, в случайных местах.
- типо, как-то так.
- */
- /*
- Лаба 3:
- Они хотят, чтобы был метод Move…
- ну пусть будет так:
- */
- public abstract class Shape {
- public abstract void draw(Graphics g);
- public abstract void move(int dx, int dy); // аналогично, реализуется в потомках.
- }
- //И этот метод реализуется, например, так:
- public class Point extends Shape {
- private int xCoord;
- private int yCoord;
- public Point(x,y) {
- this.xCoord = x;
- this.yCoord = y;
- }
- public void draw(Graphcs g) {
- // тут она как-то рисуется…
- }
- // Нужны будут позже.
- public int getX() { return this.xCoord; }
- public int getY() { return this.yCoord; }
- public void move (int dx, int dy) {
- this.xCoord += dx;
- this.yCoord += dy;
- }
- }
- public class Ellipse extends Shape {
- private Point radius1;
- private Point radius2;
- private float length;
- // ……………
- public void move (int dx, int dy) {
- this.radius1 = new Point( ( radius1.getX()+dx ) , ( radius1.getY()+dy ) );
- this.radius2 = new Point( ( radius2.getX()+dx ) , ( radius2.getY()+dy ) );
- }
- }
- public class Circle extends Ellipse {
- // …………
- public void move (int dx, int dy) {
- super(dx, dy);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement