gpt4 book ai didi

java - "variable has private access"是什么意思?我如何解决它?

转载 作者:搜寻专家 更新时间:2023-11-01 03:23:11 26 4
gpt4 key购买 nike

我正在尝试为矩形和椭圆创建一个抽象形状类,我给形状的唯一抽象方法是 draw 方法,但是在我给它一个构造函数和所有东西之后,它在矩形类中给我一个错误,说颜色其他变量具有私有(private)访问权限,这是我的代码:

public abstract class Shape{
private int x, y, width, height;
private Color color;
public Shape(int x, int y, int width, int height, Color color){
setXY(x, y);
setSize(width, height);
setColor(color);
}

public boolean setXY(int x, int y){
this.x=x;
this.y=y;
return true;
}

public boolean setSize(int width, int height){
this.width=width;
this.height=height;
return true;
}

public boolean setColor(Color color){
if(color==null)
return false;
this.color=color;
return true;
}

public abstract void draw(Graphics g);
}

class Rectangle extends Shape{
public Rectangle(int x, int y, int width, int height, Color color){
super(x, y, width, height, color);
}

public void draw(Graphics g){
setColor(color);
fillRect(x, y, width, height);
setColor(Color.BLACK);
drawRect(x, y, width, height);
}
}

class Ellipse extends Shape{
public Ellipse(int x, int y, int width, int height, Color color){
super(x, y, width, height, color);
}

public void draw(Graphics g){
g.setColor(color);
g.fillOval(x, y, width, height);
g.setColor(Color.BLACK);
g.drawOval(x, y, width, height);
}
}

最佳答案

private int x, y, width, height;意味着它们只能从声明它们的实际类中访问。您应该创建适当的 getset方法并使用它们。您希望字段是 publicprotected使用点符号访问它们,但 IMO 将它们保密并使用 get 是更好的设计和 set .另见 In Java, difference between default, public, protected, and private这解释了字段的可见性。

关于java - "variable has private access"是什么意思?我如何解决它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23463427/

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