如何解决我不确定在这里是否正确使用实例变量-基于RGB的对象Java
我正在努力找出在对象内使用实例变量的相互作用,但能够使用采用其他对象参数的方法来更改对象。该程序应该使用带有int参数的Color对象作为R,G和B值,以将自身与颜色关联。
例如:
public void add(Color c) {
red = red + c.red;
blue = blue + c.blue;
green = green + c.green;
if (red > 255) {
red = 255;
}
if (green > 255) {
green = 255;
}
if (blue > 255) {
blue = 255;
}
}
我不知道我尝试使用的格式是否有问题,但是我似乎无法弄清楚我到底在哪里跳。作为参考,这是我要使用的构造函数:
public Color(int r,int g,int b) {
red = r;
green = g;
blue = b;
if (r > 255) {
red = 255;
}
if (r < 0) {
red = 0;
}
if (g > 255) {
green = 255;
}
if (g < 0) {
green = 0;
}
if (b > 255) {
blue = 255;
}
if (b < 0) {
blue = 0;
}
}
这是我正在运行的测试,试图查看我的方法是否有效:
public final static Color RED = new Color(255,0);
public static void main(String[] args) {
Color test = new Color (0,0);
test.add(RED);
System.out.println(test.red + test.green + test.blue);
}
但是这只产生了0。对我不了解的内容的任何帮助或见识都将是很棒的!
解决方法
代码似乎没有任何明显的问题,但是我建议为Color
类编写toString方法以及一些getter和setter方法。但是,这应该很好地将其格式化为十六进制字符串(#rrggbb
)。
public String toString() {
String.format("#%02x%02x%02x",red,green,blue)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。