Создать класс точек java

Создать абстрактный класс Point (точка)

Создать абстрактный класс Point (точка). На его основе создать классы ColoredPoint и Line. На основе класса Line создать класс ColoredLine и класс PolyLine (многоугольник). Все классы должны иметь методы установки и получения значений всех координат, а также изменения цвета и получения текущего цвета. Создать интерфейс Picture для вывода характеристик объектов классов ColoredLine и PolyLine. Написать демонстрационную программу, в которой будут использоваться все методы классов.
Не могу не как до конца завериштть данный код.
Point.java

ublic abstract class Point { private String color; public void setColor(String color) { this.color = color; } public String getColor() { return color; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
public class Line extends Point { private int x1; private int y1; private int x2; private int y2; @Override public String getColor() { return super.getColor(); } @Override public void setColor(String color) { super.setColor(color); } public int getX1() { return x1; } public void setX1(final int x) { this.x1 = x; } public int getY1() { return y1; } public void setY1(final int y) { this.y1 = y; } public int getX2() { return x2; } public void setX2(final int x2) { this.x2 = x2; } public int getY2() { return y2; } public void setY2(final int y2) { this.y2 = y2; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
public class ColoredPoint extends Point{ private int x1; private int y1; @Override public void setColor(String color) { super.setColor(color); } @Override public String getColor() { return super.getColor(); } public int getX1() { return x1; } public void setX1(final int x1) { this.x1 = x1; } public int getY1() { return y1; } public void setY1(final int y1) { this.y1 = y1; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
public class ColoredLine extends Line implements Picture { @Override public String getColor() { return super.getColor(); } @Override public void setColor(final String color) { super.setColor(color); } @Override public int getX1() { return super.getX1(); } public void setX1(final int x) { super.setX1(x); } public int getY1() { return super.getY1(); } public void setY1(final int y) { super.setY1(y); } public int getX2() { return super.getX2(); } public void setX2(final int x2) { super.setX2(x2); } public int getY2() { return super.getY2(); } public void setY2(final int y2) { super.setY2(y2); } @Override public void printColor() { System.out.println(); } @Override public void printCoordinates() { } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
public class PolyLine extends Line implements Picture { private int x1; private int x2; private int x3; private int x4; private int y1; private int y2; private int y3; private int y4; @Override public void setColor(String color) { super.setColor(color); } @Override public String getColor() { return super.getColor(); } @Override public int getX1() { return x1; } @Override public void setX1(final int x1) { this.x1 = x1; } @Override public int getX2() { return x2; } @Override public void setX2(final int x2) { this.x2 = x2; } public int getX3() { return x3; } public void setX3(final int x3) { this.x3 = x3; } public int getX4() { return x4; } public void setX4(final int x4) { this.x4 = x4; } @Override public int getY1() { return y1; } @Override public void setY1(final int y1) { this.y1 = y1; } @Override public int getY2() { return y2; } @Override public void setY2(final int y2) { this.y2 = y2; } public int getY3() { return y3; } public void setY3(final int y3) { this.y3 = y3; } public int getY4() { return y4; } public void setY4(final int y4) { this.y4 = y4; } @Override public void printColor() { System.out.println(); } @Override public void printCoordinates() { } }
public interface Picture { void printColor(); void printCoordinates(); }

Источник

Читайте также:  Javascript web developer pdf

Создание собственных классов в Java (продолжение), класс Object

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

Например, мы можем пользоваться методом явно:

Point p3 = new Point(3,4.67); System.out.println("Координаты точки: "+p3.toString());

А можем просто обединять наш объект с другой строкой, провоцируя автоприведение:

Point p4 = new Point(3.2,2.3); System.out.println("Координаты точки: "+p4);

Результат при этом будем получать идентичный.

Такой особенный метод toString() существует на самом деле для всех объектов в Java. Любой класс в Java является наследниом класса Object (хотя наследование мы явно при создании своего класса никак не используем) и от этого родительского класса получает ряд готовых методов (среди которых toString() тоже присутствует). Теперь в классе Point мы метод toString() перегрузили, сделав для него такую реализацию, которая требуется нам в нашей программе.

Ещё один яркий пример метода, наследуемого от коренного класса Object — это метод equals(Object o) для сравнения объектов — его можно применять к любым двум объектам (даже если они из разных классов), вызывая метод для одного из них, а второй передавая через параметр. Метод будет возвращать истинное значение тогда и только тогда, когда будет вызван для двух ссылок на один и тот же объект. В своих программах с практической точки зрения равными можно считать разные объекты имеющие одинаковый набор текущих значений в полях, поэтому метод equals обычно тоже перегружают. Вместе с ним обязательно перегружать и метод hashCode(), возвращающий некоторое целое число для каждого объекта, являющегося его уникальным числовым идентификатором (хешем). По умолчанию (в той реализации, которая представлена в классе Object) это число строится на основании адреса объекта в памяти, но при перегрузке метода можно придумать свою собственную реализацию, главное, чтобы она удовлетворяла одному важному правилу: если два обекта совпадают в соответствии с методом equals, то у них должны быть одинаковые хеши, возвращаемые методом hashCode(), при этом обратного не требуется. Например, для нашего класса Point мы могли бы в качестве хеша возвращать произведение координат точки.

Читайте также:  Python set time and date

Не требуется, но рекомендуется для своих классов перегружать перечисленные выше методы. В примере это сделано для метода toString, но не сделано для equals и hashCode.

Задачи

  1. Создайте в классе метод, который будет выводить на экран сообщение о том, в какой координатной четверти лежит точка.
  2. Создайте в классе метод, проверяющий, являются ли две точки симметричными относительно начала отсчёта.
  3. Измените в классе конструктор по умолчанию таким образом, чтобы начальные координаты точки при её создании пользователь задавал с клавиатуры.
  4. Создайте в классе метод, проверяющий, являются ли три точки коллинеарными (т.е. лежащими на одной прямой).
  5. Вместо представленного метода equalsPoint перегрузите в классе методы equals и hashCode.

Источник

Создать класс «точка» для работы с точками на плоскости. Координаты точки – декартовы

Создать класс «точка» для работы с точками на плоскости. Координаты точки – декартовы. Требуется определить конструктор, методы перемещения точки по осям, и определения расстояния до начала координат.

Создать класс Point для работы с точками на плоскости
Задания должны быть реализованы двумя способами: — тип данных представляется структурой с.

Создать класс Point для работы с точками на плоскости
помогите пожалуйста,очень нужно. Создать класс Point для работы с точками на плоскости. Координаты.

Создать класс Point для работы с точками на плоскости
Прошу помощи, только третья лаба по классам. Не совсем понимаю (может даже вообще) как это делать.

Создать класс Point для работы с точками на плоскости
Создать класс Point для работы с точками на плоскости.Координаты точки — декартовы.Обязательно.

ЦитатаСообщение от Stasyan17 Посмотреть сообщение

ЦитатаСообщение от Stasyan17 Посмотреть сообщение

попроси админа перенести тему в ветку для нулевых.
а твоя задача решается каждый год, тут, по 20-30 раз! поиск по java ветки форума тебе в помощь))

Читайте также:  PHP Form

ЦитатаСообщение от Stasyan17 Посмотреть сообщение

ЦитатаСообщение от Stasyan17 Посмотреть сообщение

ЦитатаСообщение от Stasyan17 Посмотреть сообщение

ЦитатаСообщение от Stasyan17 Посмотреть сообщение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
import java.awt.*; public class Helper { public static void main(String[] args) { MyPoint point1 = new MyPoint(4,3); MyPoint point2 = new MyPoint(4,3); System.out.println(point1.equals(point2)); point2.move(11,10); System.out.println(point1.equals(point2)); System.out.println(point1 + "\n" + point2); System.out.println(point1.distinctToZeroPoint()); } } class MyPoint extends Point { MyPoint(int x, int y) { super(x, y); } @Override public double getX() { return super.getX(); } public void setX(int x) { super.x = x; } @Override public double getY() { return y; } public void setY(int y) { super.y = y; } @Override public void move(int x, int y) { super.move(x, y); } public double distinctToZeroPoint() { return Math.hypot(super.x, super.y); } }

Источник

Оцените статью