关于java枚举类型的问题,具体请看代码。
publicclassTest{publicenumColor{red,blue,black,}publicstaticvoidpaint(Colorc){System....
public class Test {
public enum Color{
red,blue,black,
}
public static void paint(Color c) {
System.out.println("this is color"+c);
}
public static void main(String[] args) {
paint(c.red);
}
}
我的问题是,这里调用paint的时候为什么不是直接传red进去而是用Color.red?red不是Color的一个实例对象吗?
这样岂不是相当于定义一个Class person,然后产生一个实例对象p 即Person p=new Person();再然后用Person.p一样?像Person.p这样用肯定是不行的,那为什么enum就可以Color.red呢?难道是因为enum的特别? 展开
public enum Color{
red,blue,black,
}
public static void paint(Color c) {
System.out.println("this is color"+c);
}
public static void main(String[] args) {
paint(c.red);
}
}
我的问题是,这里调用paint的时候为什么不是直接传red进去而是用Color.red?red不是Color的一个实例对象吗?
这样岂不是相当于定义一个Class person,然后产生一个实例对象p 即Person p=new Person();再然后用Person.p一样?像Person.p这样用肯定是不行的,那为什么enum就可以Color.red呢?难道是因为enum的特别? 展开
2个回答
展开全部
enum可以理解为一个特殊的类, 而其元素为enum类型的公共的静态类成员, 注意是类成员, 所以你引用时用的enum的名字+.+成员的名称.
如果要用Person的话你可以这样理解:
class Person{
public static Person p1 = new Person();
public static Person p2 = new Persion();
private Person(){};
}
你在使用Person的时候, 因为其构造函数不可见, 所以你只能用Person.p1来定义和访问.
如果要用Person的话你可以这样理解:
class Person{
public static Person p1 = new Person();
public static Person p2 = new Persion();
private Person(){};
}
你在使用Person的时候, 因为其构造函数不可见, 所以你只能用Person.p1来定义和访问.
2012-09-20
展开全部
enum里面是常量值,值的引用要用“类名。值”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询