为什么 java.awt.Color return RGB 值?

Why does java.awt.Color return RGB values?

我一直在四处寻找,但没有找到任何东西。原因之一是我不知道从什么开始搜索。 :/

所以基本上我是在玩弄颜色然后我使用了 System.out.println(java.awt.Color.black) 并且输出是 java.awt.Color[r=0,g=0,b=0] 这让我有点惊讶因为我认为输出会像 java.awt.Color@2a33fae0 因为据我所知,java.awt.Color 中的 'black' 变量类型为 java.awt.Color,为什么以及如何输出?

打印对象引用时得到的是 toString 方法返回的字符串。 class Color 定义了一个 toString 方法,它产生您在那里看到的输出。

在 java 中,print 语句使用 class 的 toString 实现。因此,如果您不实现它,它将使用 Object 中的 toString,这就是为什么您会得到像 java.awt.Color@2a33fae0 这样的输出,但对于 Color 它使用的是 toStringColor 所以你得到 RGB 值。他们只是选择以这种方式实现 toString 他们可以选择十六进制或任何其他表示形式。