Methode in der Klasse angewendet werden kann, um bestimmte Arten Fehler
//CentredBall class:
2 // Class attribute: quantity - number of balls created
3 // Instance attributes: colour, radius, centre
4 import java.awt.*;
5
6 class CentredBall {
7
8 /************** Data members **********************/
9 private static int quantity = 0;
10
11 private String colour;
12 private double radius;
13 private Point centre;
14 private int xCoord, yCoord;
15
16 /************** Constructors **********************/
17 // Default constructor creates a yellow, radius 10.0 ball centred at origin (0,0)
18 public CentredBall() {
19 this.colour = "yellow";
20 this.radius = 10.0;
21 }
22
23 public CentredBall(String colour, double radius, Point centre) {
24 setColour(colour);
25 setRadius(radius);
26 setCentre(xCoord, yCoord);
27 quantity++;
28 }
29
30 public CentredBall(String colour, double radius, int xCoord, int yCoord) {
31 setColour(colour);
32 setRadius(radius);
33 setxCoord(xCoord);
34 setyCoord(yCoord);
35 quantity++;
36 }
37
38 /**************** Accessors ***********************/
39 public static int getQuantity() {
40 return quantity;
41 }
42 public String getColour() {
43 return this.colour;
44 }
45 public double getRadius() {
46 return this.radius;
47 }
48 public Point getCentre() {
49 return this.centre;
50 }
51 public int getxCoord() {
52 return this.xCoord;
53 }
54 public int getyCoord() {
55 return this.yCoord;
56 }
57
58 /**************** Mutators ************************/
59 public void setColour(String colour) {
60 this.colour = colour;
61 }
62 public void setRadius(double radius) {
63 this.radius = radius;
64 }
65 public void setCentre(Point centre) {
66 this.centre = centre;
67 }
68 public void setxCoord(int xCoord) {
69 this.xCoord = xCoord;
70 }
71 public void setyCoord(int yCoord) {
72 this.yCoord = yCoord;
73 }
74
75 /***************** Overriding methods ******************/
76 //Overriding toString() method
77 public String toString() {
78 return "[" + getColour() + ", " + getRadius() + ", " + getxCoord() + ", " + getyCoord() + "]";
79 }
80
81 //Overriding equals() method
82 public boolean equals(Object obj) {
83 if (obj instanceof CentredBall) {
84 CentredBall ball = (CentredBall) obj;
85 return this.getColour().equals(ball.getColour()) &&
86 this.getRadius() == ball.getRadius() &&
87 this.getxCoord() == ball.getxCoord() &&
88 this.getyCoord() == ball.getyCoord();
89 }
90 else
91 return false;
92 }
Ich bekomme immer diese Fehler
CentredBall.java:26: error: method setCentre in class CentredBall cannot be applied to given types;
setCentre(xCoord, yCoord);
^
required: Point
found: int,int
reason: actual and formal argument lists differ in length
1 error
Habe ich ein paar Fragen. pls help.
-
wie kommen die default-Konstruktor keinen parameter hat für das Zentrum im Ursprung? Ich habe versucht, dies zu tun("gelb", 10.0, (0,0)); aber es funktioniert nicht
-
was ist der nutzen von dem überschreiben von Methoden? Gibt es irgendwelche Fehler für die
toString
undequals
überschreiben von Methoden, die ich erstellt habe?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
Point centre
aus der param oder erstellen Sie einen neuen Punkt wiePoint p = new Point(xCoord, yCoord)
Sind Sie immer der Fehler, weil die
setCentre()
- Methode erwartet einen Punkt und nicht 2 ints:Sich auch für:
1.Warum gehst du nicht fügen Sie einfach einen anderen Konstruktor für das Ursprungs-Punkt:
2.Du hast geschrieben das du aber nicht wissen, warum haben Sie es geschrieben? Überschreiben Sie Sie so, dass Sie sich so Verhalten, wie Sie wollen, dass Sie für Ihre Objekte.
Sie versuchen, pass xCoord, yCoord im Ort, der einen parameter vom Typ Punkt. Statt pass
Diese Konstrukte ein Point-Objekt, das die Methode verarbeiten kann.