Cześć,
Jestem początkującym programistą Java. Przerabiałem teraz tematy z dziedziczeniem i miałem następuje zadanie. Miałem napisać klasę abstrakcyjną punkt, a potem klasę Punkt 2d, która dziedziczy z klasy punkt. Fajnie by było porównywać punkty ze względu na odległość od środka układu, więc zaimplementowałem interfejs Comparable. Poniżej mój kod:
import java.util.*;
abstract class Point implements Comparable<Point>
{
protected int[] Coordinates;
protected int dim, dist;
Point() {};
abstract int compareTo();
}
class Point2D extends Point
{
public int compareTo(Point a)
{
return this.dist - a.dist;
}
public int compareTo() {return 0;}
Point2D(int a, int b)
{
dim = 2; dist = a*a + b*b;
Coordinates = new int[2]; Coordinates[0] = a; Coordinates[1] = b;
}
public String toString()
{
return "[x : " + Coordinates[0] + ", y : " + Coordinates[1] + "]";
}
}
public class Main
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int x = scan.nextInt(), y = scan.nextInt();
Point2D P = new Point2D(x,y);
System.out.println(P.toString());
}
}
Mam teraz do was kilka pytań.
- Czy mój kod jest poprawny? Co byście w nim zmienili lub poprawili ?
- Nie bardzo rozumiem po co jest mi w kodzie potrzeba taka linijka (bez tego kompilator wyrzuca błąd):
public int compareTo() {return 0;}