java 枚举类 为什么输出枚举类对象时输出的是名称而不是地址??

程序如下:

enum Color{
RED,GREEN,BLUE;
}

public class Trr {
public static void main(String args[])throws Exception{
Color c=Color.RED;
System.out.println(c);
}

}

为什么输出一个枚举类对象时输出的是名称而不是地址??

你所说的“地址”是指什么?

如果是内存地址 Java是不支持程序员对内存进行操作的 所以你肯定得不到
如果是指c在枚举里的index 那你强制转换成int试试追问

我的意思是说,我输出一个别的类的对象时输出的是他的内存地址,为什么enum类输出的是他的名称??

追答

是这样 你的System.out.println(c);语句实际的效果应该等同于System.out.println(c.toString());

你新建的所有类 其实都是object的子类 所以他们的toString方法实际上是调用了object类的toString 该方法的效果就是返回对象的名字和他在堆中的地址
enum是Java一个比较特殊的类 它不是直接继承自object 他自己有自己的toString方法 就是返回这个枚举对象的名字

温馨提示:答案为网友推荐,仅供参考
相似回答