java当中已定义的类型问题

小弟是一名JAVA初学者,今天学内部类的时候遇到这个问题,class Student123这里一直报错,说是已定义的类型,求解这是什么情况,该如何去解决?
public class StudentTest {
public static void main(String[] args){
Student123 S1=new Student123();
S1.setName("张三");
S1.setScore(80);
S1.setage(20);

System.out.println(S1.getName());
System.out.println(S1.getScore());
System.out.println(S1.getage());

}
}
class Student123{
private String name;
private double score=60;
private int age;

public String getName(){
return name;

}
public void setage(int age) {
this.age=age;

}
public int getage() {
return age;
}
public void setName(String name){
this.name=name;
}
public double getScore(){
return score;
}
public void setScore(double score){
if (score>60){
this.score=score;
}
}
}

public class StudentTest {
public static void main(String[] args){
Student123 S1=new Student123();
S1.setName("张三");
S1.setScore(80);
S1.setage(20);

System.out.println(S1.getName());
System.out.println(S1.getScore());
System.out.println(S1.getage());

}
//} 这个大括号移动最后去,让StudentTest作为外部类
public static class Student123{ //这个类声明为静态内部类
private String name;
private double score=60;
private int age;

public String getName(){
return name;

}
public void setage(int age) {
this.age=age;

}
public int getage() {
return age;
}
public void setName(String name){
this.name=name;
}
public double getScore(){
return score;
}
public void setScore(double score){
if (score>60){
this.score=score;
}
}
}
} //前面的大括号移到此处追问

非常感谢,其实这个问题也不知道什么情况,他是有时候报错有时候正常,我用的是Eclipse编译的

追答

哦,我没用Eclipse,我用的是JCreator Pro5.00.016,呵呵。。。
刚才我也是,重启一下JCreator Pro就正常了。
但在dos里运行java是正常的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-14
张三
80.0
20
同一个package下不能有两个同名的class,interface,enum等等。。。看看Student123这个类是否在包同一层级中已经定义过了,在StudentTest类中又定义了一次。。
第2个回答  2014-05-14
把Student123移到其它的类文件里面去,然后引入包