import java.awt.*;
import java.awt.Rectangle;
public class Cell extends Rectangle{
int x;
int y;
public Cell(int x, int y) {
super(x,y);
}
public void paint(Graphics g, Boolean highlighted) {
if (highlighted) {
g.setColor(Color.LIGHT_GRAY);
g.fillRect(x, y, 35, 35);
}
g.setColor(Color.BLACK);
g.drawRect(x, y, 35, 35);
}
public boolean contains(Point target){
if (target == null)
return false;
return target.x > x && target.x < x + 35 && target.y > y && target.y < y +35;
}
}
我更改了类单元格的构造函数,并使用super()将其链接到父类矩形。但是,我曾经有过一个网格和主电源方法,但现在不再了。如何在程序运行时更改contains方法以返回网格?
答案 0 :(得分:1)
Rectangle
班级已有x
和y
个字段
为什么要扩展这个类,并在子类中添加这些字段?
子类中的x
和y
隐藏了哪一个超级类。
例如:
public Cell(int x, int y) {
super(x,y);
}
您设置超类的x
和y
。
在这里:
public boolean contains(Point target){
if (target == null)
return false;
return target.x > x && target.x < x + 35 && target.y > y && target.y < y +35;
}
x
和y
引用等于0
的子类字段,因为这些字段在构造函数中未被赋值。
删除它们并使用哪一个超类。