当前位置: 代码迷 >> J2SE >> 解决一个小疑点…
  详细解决方案

解决一个小疑点…

热度:85   发布时间:2016-04-23 20:40:47.0
解决一个小问题……
自己看了半天,感觉应该没问题啊,也不知道是不是刚睡醒看不出来?发出来给大家练练眼睛……

public class Demo5 {
public void test() {
print(Grade.B);
}

public void print(Grade g) {
String s = g.getValue();
System.out.println(s);
}

// 如何定义枚举的构造方法和字段,去封装更多的信息
enum Grade {// A 100-90 B 89-80 C 79-70 D 69-60 E 59-0
A("100-90"), B("89-80"), C("79-70"), D("69-60"), E("59-0");
private String value;// 封装每个对象对应 的分数
private void Grade(String value) {
this.value = value;
}

public String getValue() {// 返回value的值
return this.value;
}
}

}


恳请善良的小伙伴帮忙解决下……
------解决方案--------------------
引用:
自己看了半天,感觉应该没问题啊,也不知道是不是刚睡醒看不出来?发出来给大家练练眼睛……

public class Demo5 {
public void test() {
print(Grade.B);
}

public void print(Grade g) {
String s = g.getValue();
System.out.println(s);
}

// 如何定义枚举的构造方法和字段,去封装更多的信息
enum Grade {// A 100-90 B 89-80 C 79-70 D 69-60 E 59-0
A("100-90"), B("89-80"), C("79-70"), D("69-60"), E("59-0");
private String value;// 封装每个对象对应 的分数
private void Grade(String value) {
this.value = value;
}

public String getValue() {// 返回value的值
return this.value;
}
}

}


恳请善良的小伙伴帮忙解决下……

Grade的构造方法不能加返回值类型(void)
------解决方案--------------------
枚举中的每个实例会调用构造方法,构造方法不能有返回值的亲。把public void 去掉就行,顺便说一声,枚举是单例,构造方法也不能以public声明。
public class Demo5
{
public void test()
{
print(Grade.B);
}

public void print(Grade g)
{
String s = g.getValue();
System.out.println(s);
}

// 如何定义枚举的构造方法和字段,去封装更多的信息
enum Grade
{// A 100-90 B 89-80 C 79-70 D 69-60 E 59-0
A("100-90"), B("89-80"), C("79-70"), D("69-60"), E("59-0");
private String value;// 封装每个对象对应 的分数

Grade(String value)
{
this.value = value;
}

public String getValue()
{// 返回value的值
return this.value;
}
}

}
------解决方案--------------------
构造方法的void应该去掉
------解决方案--------------------
构造方法的是没有void的
  相关解决方案