程序如下:
enum Color{
RED,GREEN,BLUE;
}
public class Trr {
public static void main(String args[])throws Exception{
Color c=Color.RED;
System.out.println(c);
}
}
为什么输出一个枚举类对象时输出的是名称而不是地址??
我的意思是说,我输出一个别的类的对象时输出的是他的内存地址,为什么enum类输出的是他的名称??
追答是这样 你的System.out.println(c);语句实际的效果应该等同于System.out.println(c.toString());
你新建的所有类 其实都是object的子类 所以他们的toString方法实际上是调用了object类的toString 该方法的效果就是返回对象的名字和他在堆中的地址
enum是Java一个比较特殊的类 它不是直接继承自object 他自己有自己的toString方法 就是返回这个枚举对象的名字