gpt4 book ai didi

java - 类中的方法无法应用于给定类型错误

转载 作者:行者123 更新时间:2023-12-01 13:30:57 25 4
gpt4 key购买 nike

// 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 }

我不断收到此错误

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

我有几个问题。请帮忙。

  1. 为什么默认构造函数没有原点中心的参数?我尝试这样做(“黄色”,10.0,(0,0));但它不起作用

  2. 重写方法有什么用?我创建的 toStringequals 重写方法是否有任何错误?

最佳答案

使用参数中的Point center或创建一个新的Point,例如Point p = new Point(xCoord, yCoord)

关于java - 类中的方法无法应用于给定类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21576363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com