java 类A中,通过enum中定义的枚举名Color,在类B中为什么不实例化就可以直接调用,如 B.Color 10
classA{enumColor{Red,Green,Blue};publicColorc=Color.Red;......publicmethod{.............
class A{
enum Color{Red,Green,Blue};
public Color c=Color.Red;
......
public method{
..........
}
}
class B{
public A.Color mycolor;
public B(A.Color c){
this.mycolor=c;
}
}
问题就是,在A中定义的枚举Color,为什么没有经过实例化,可以直接像A中的静态变量一样引用A.Color 展开
enum Color{Red,Green,Blue};
public Color c=Color.Red;
......
public method{
..........
}
}
class B{
public A.Color mycolor;
public B(A.Color c){
this.mycolor=c;
}
}
问题就是,在A中定义的枚举Color,为什么没有经过实例化,可以直接像A中的静态变量一样引用A.Color 展开
2个回答
展开全部
enum是java1.5中新加入的东西
enum的本质 其实还是一个特殊的类 只是对象是固定的那几个
你在A中的enum定义 其实相当于一个内部类一样的东西 B肯定可以调用啊
enum的本质 其实还是一个特殊的类 只是对象是固定的那几个
你在A中的enum定义 其实相当于一个内部类一样的东西 B肯定可以调用啊
追问
内部类调用,也需要通过实例化调用啊
追答
关键是enum本身是一个特殊的类 你可以理解成他的对象都是静态实例化好的
不信你把enum Color{Red,Green,Blue};
这个东西单独拿出来 写成
public enum{
Red,
Green,
Blue;
}
你在别的类里也可以直接以 Color.Red来调用
2014-12-21
展开全部
enum Color{
.......放到A的外面,不是更好吗
.......放到A的外面,不是更好吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询