A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王敏NO.09 中级黑马   /  2012-4-20 15:50  /  2677 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public enum TrafficLamp{
        RED,GREEN,YELLOW;
        public abstract  TrafficLamp nextLamp();
}

上述代码中,方法的类型是TrafficLamp ,同类名一样,只样做有什么意义呢,什么时候这么做呢?谢谢

7 个回复

倒序浏览
自己对自己操作,需要返回一个自己的对象。
回复 使用道具 举报
意义嘛,就是功能需要,至于什么时候用,就看你要实现的功能了,当你写一个方法需要返回这个方法所属的类的对象时就要像上面那样了
回复 使用道具 举报
public abstract  TrafficLamp nextLamp();
方法的语句格式 访问修饰符  一般修饰符  返回类型  类名 (参数列表){}
public 是访问类型 abstract是一般访问类型 因为TrafficLamp不是修饰符 所以是返回类型  
当返回类型 跟类名一样时代表返回的是该类的对象 当然这换回类还可以是其他的数据类型
回复 使用道具 举报
该类是个枚举,枚举的变量就是该类的对象,调用nextLamp()方法,返回值是个该枚举类型的对象

回复 使用道具 举报
灯实现以后,调用他可以红绿黄灯变来变去了
方便交通嘛
回复 使用道具 举报
张超超 黑马帝 2012-4-20 17:51:13
7#
你实现了一个枚举类,方法的类型是TrafficLamp ,说明你想让该方法返回一个本类类型的对象变量

这样做的意义是可以方便对枚举的操作。

使用枚举类有几个要注意得地方:

枚举元素列表必须写在枚举类的最前面,每个元素之间用逗号隔开,元素列表结束位置后若没有其他内容,则可以不写分号,否则必须要写。
枚举类中所有的构造器是private的,外部程序不能够创建枚举类的实例。枚举类中可以显式的指明调用哪个构建器,如MEMBER和MEMBER()这两种元素列表声明是等价的,都是调用默认的构建器,而MEMBER("普通会员")则是显式的指明程序调用第二个构建器.
枚举类可以有抽象方法,但必须在元素列表声明中实现这些方法。此外,枚举类中还可以声明一些普通的成员变量和方法
回复 使用道具 举报
谢谢各位!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马