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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邱成 中级黑马   /  2012-9-11 23:30  /  1270 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邱成 于 2012-9-12 07:40 编辑

//以下是一段关于枚举的 问题:
enum CupShop {
        cup1("num1"), cup2("num2"), cup3("num3");
        private String name;

        public void setName(String name) {
                this.name = name;
        }

        public String getName() {
                return name;
        }

        private CupShop(String name) {
                this.setName(name);
        }
}

public class Cup {
        public static void main(String args[]) {
                for (CupShop c : CupShop.values()) {
                        System.out.println(c.ordinal() + c.name() + c.getName());
                }
        }
}
在上述代码中的cup1("num1"),cup2("num2"),cup3("num3");括号里的“num1""num2""num3"代表什么思?cup1,cup2,cup3又代表什么意思?
在这段代码中是怎样为属性赋值的?使用c.getName为什么可以取得cup1("num1"),cup2("num2"),cup3("num3")中括号里的字符串?

2 个回复

倒序浏览
enum CupShop {
        cup1("num1"), cup2("num2"), cup3("num3");
一看就知道是枚举。它定义的cup1("num1"), cup2("num2"), cup3("num3");
这些事固定的值。不能改变的,他们相当于是这个枚举的一个个对象,括号中的是对应的参数
,这样可以再调用某个枚举时就可以访问到他。
cup1("num1"), cup2("num2"), cup3("num3");它里面就已经有数值了。他就是一个对象。
包括值都在,只要你用set或get方法就可以得到他们或得到相应的值。
回复 使用道具 举报
先说枚举的定义:将变量的值一一列举出来,变量的值只限于列举出来的值的范围内,也就是说代码中的cup1("num1"),cup2("num2"),cup3("num3")就是该Cupshop类的所有取值;num1""num2""num3"可以理解为它的构造函数传入的实际参数,形参是String name,私有化其String name,有利于程序的安全性,然后通过setName设置传入的实参,通过getName获得name,这种方式在以后的实际开发中也会经常遇到,eclipse通常会帮忙自动书写,主函数里面的代码是通过增强的for循环,楼主可以这样理解,调用CupShop的静态方法values(),将取得的数据赋值给CupShop的子类c,然后继续下一次循环,其中ordinal()方法是Enum类中的特有方法,返回他的序列号(从0开始的),getName是它的自带方法。getName函数的方法体中的返回值就是name,隐式的书写方式就是this.name,楼主这样看明白没有,哎,苦逼的程序员,休息吧╮(╯▽╰)╭
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马