复制楼主代码始终编译不通过
Weekday1.java:1: 错误: 类WeekDay1是公共的, 应在名为 WeekDay1.java 的文件中声明
public abstract class WeekDay1 {
^
Weekday1.java:22: 错误: 类EnumTest是公共的, 应在名为 EnumTest.java 的文件中声明
public class EnumTest {
^
去掉第一行代码中 public 吧文件名改成EnumTest.java 编译才通过
通过百度才知道的。java的特性,公有类必须在与类名同名的文件中定义。
也就是说,你的这段代码的文件名必须是SetApple.java,不然编译不了的。
输出SUM..
OK.应为水平不行。代码有点看不懂事项表达什么。既然
在WeekDay1中定创建
WeekDay1 SUN = new WeekDay1
在main中创建
WeekDay1 weekDay = WeekDay1.MON;
调用了
weekDay.nextDay()
而在
WeekDay1 weekDay = WeekDay1.MON;是创建了MON对象。
MON中方法是
/*public final static WeekDay1 MON = new WeekDay1(){
public WeekDay1 nextDay() {
return SUN;
}
};
*/
回一个SUN对象。
System.out.println(weekDay.nextDay()) 输出SUN。。
/*
public String toString(){
return this==SUN?"SUN":"MON";
}
*/
这段代码复写了上帝的toString
返回的如果是如果是SUN对象。就返回"SUN" 如果不是就“MON”
既然复写了toString 返回的是自符串。输出当然是SUN 字符串
反过来
// return this==SUN?"MON":"SUN";
输出的就是MON。。
去掉这段代码
/*public String toString(){
return this==SUN?"SUN":"MON";
}
*/
System.out.println(weekDay.nextDay());
输出的就是
WeekDay1$1@bdb503
所以。。这个WeekDay1$1@bdb503 就是对象。这是上帝的toString
|