gpt4 book ai didi

Java:如何在子类中设置颜色?

转载 作者:太空宇宙 更新时间:2023-11-04 07:22:16 32 4
gpt4 key购买 nike

我正在尝试使用 getter/setter 在子类中设置颜色,但出现编译错误。

//world.java
import java.awt.Color;

public class world {
private Color color;

public Color getColor() {
return color;
}
public void setColor(Color color) {
this.color = color;
}
}

//object.java
public class object extends world {
public object{
setColor(new world.Color(255,0,0); //compile error
}
}

我可以通过在子级中导入 java.awt.Color 并输入 setColor(new Color(255,0,0) 来轻松解决这个问题,但是当它已经在父级中导入时,这不是多余的吗?我还尝试了其他语法,例如 setColor(world.setColor(new Color(255,0,0))) 但给出了不同的错误。正确执行此操作的正确语法是什么?

最佳答案

使用 new world.Color(255,0,0); 在很多方面都是不正确的。对于 Java 编译器,您为名为 world 的类请求一个名为 Color 的内部静态类。如果将其添加到代码库中,则不会导致编译错误:

//world.java (different to World.java)
class world {
public static class Color {
public Color(int r, int g, int b) {}
}
}

因此您可以使用 new Color(255, 0, 0); 来纠正此问题。

而且 import 语句也不是多余的。在Java中,每个java文件都定义了一个编译单元。这个单位代表它自己。按类型引用的每个类(直接命名的类/接口(interface))必须仅通过知道包名称、类名称及其定义(内部类/接口(interface)、匿名类等)即可解析。由于 Color 来自远程包,因此编译单元(您的 java 文件)必须包含对 Color 类的引用。这可以通过使用 import 语句或通过其全名(= package + "."+ class-name)引用 Color 类来完成,意思是 java.awt.Color。

关于Java:如何在子类中设置颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19148104/

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