public class XueShen {
public static void main(String[] args) {
xueShen ff=new xueShen(30,89,96,92,"张三");
ff.getInfo();
}}class xueShen{
private int age;
private int suxue;
private int en;
private int jisuanji;
private String name;
xueShen(int a,int b,int c,int d,String name){
this.setAge(a);
this.setSuXue(b);
this.setEn(c);
this.setJiSuanJi(d);
this.setName(name);
}
    public void setAge(int a){
     age=a;
    }
    public void setSuXue(int b){
suxue=b;
}
public void setEn(int c){
en=c;
}
public void setJiSuanJi(int d){
jisuanji=d;
}
public void setName(String name){
this.name=name;
}
public int getAge(){
return age;
}
public int getSuXue(){
return suxue;
}
public int getJiSuanJi(){
return jisuanji;
}
public int getEn(){
return en;
}
public String getName(){
return name;
}
public String getInfo(){
return "学生信息: \n" +
"\t|- 姓名:" + this.getName() + "\n" +
"\t|- 年龄:" + this.getAge() + "\n" +
"\t|- 数学成绩:" + this.getSuXue() + "\n" +
"\t|- 英语成绩:" + this.getEn() + "\n" +
"\t|- 计算机成绩:" + this.getJiSuanJi() ;
}
       }
编译:F:\JavaDemo>javac XueShen.java     这里在F:盘只生成了一个XueShen.class文件!一个是public的,一个是默认的,                                      为什么一个编译,一个不编译F:\JavaDemo>java XueShen
Exception in thread "main" java.lang.NoClassDefFoundError: XueShe
xueShen)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616
        at java.security.SecureClassLoader.defineClass(SecureClas
1)
        at java.net.URLClassLoader.defineClass(URLClassLoader.jav
        at java.net.URLClassLoader.access$000(URLClassLoader.java
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Met
        at java.net.URLClassLoader.findClass(URLClassLoader.java:
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.ja
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: XueShen.  Program will exit.

解决方案 »

  1.   

    不是public的问题,是类名相同了,你在同一个包下面建Test类在建一个test类你就知道行不行了
      

  2.   

    public class XueShen
    class xueShen
    看出来不一样了没?
      

  3.   

    朋友,你没学好java嘛?自己去用eclipse在同一个包下面给我创建出来看看XueShen和xueShen?
      

  4.   

    如果我没有记错的话一个Java文件下,不会出现两个 Class的!!!  
      

  5.   

    一楼说的对,但问题是类名没有相同啊,一个类名首字大写,一个小写,我换了那个默认修饰的类的类名换成  class Shen{} 编绎运行都通过了,这是为什么呢?编程有这个规范吗?
      

  6.   

    是一个文件下不可以出现两个public class,
      

  7.   

    windows 系统下,文件名大小写认为是一样的。
    不允许在一个目录下出现:XueShen.class 和xueShen.class.
    (简单试一下:你在随便一个目录下,建文件AA.txt,之后再建一个文件aa.txt, 看会让你建吗?(系统认为aa.txt和AA.txt是一个文件。)
    反编译一下,发现 XueShen.class 对应的是 class xueShen 的内容。
    我猜测过程是这样:编译器先建立了一个XueShen.class 的文件,发现这里还有类引用,这个类名是xueShen,于是要建一个xueShen.class 的文件,但发现文件已经存在(就是XueShen.class),就不再建xueShen.class 文件了。把类xueShen的代码编译后放在了XueShen 里了。
    等编译完xueShen类后,就不再编译XueShen 类了。以上个人理解,有错欢迎指正。