为什么 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
它使用的是 toString
从 Color
所以你得到 RGB
值。他们只是选择以这种方式实现 toString
他们可以选择十六进制或任何其他表示形式。
我一直在四处寻找,但没有找到任何东西。原因之一是我不知道从什么开始搜索。 :/
所以基本上我是在玩弄颜色然后我使用了 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
它使用的是 toString
从 Color
所以你得到 RGB
值。他们只是选择以这种方式实现 toString
他们可以选择十六进制或任何其他表示形式。