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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张成龙 中级黑马   /  2012-5-8 13:20  /  2577 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Student//java:1: 错误: 类Student是公共的, 应在名为 Student.java 的文件中声明
public class Student
{   
  private String name;   
  
  public Student(String name)
   {   
      this.name = name;   
      
   }   
  public String getName()
   {   
      return name;   
   }   
  public void setName(String name)
   {   
      this.name = name;   
   }   
  
}
public class TestDemo
{   
  public static void main(String[] args)
   {   
     Student[] s = new Student[2];//定义Student数组对象   
     s[0] = new Student("张三");   
     s[1] = new Student("李四");
     int i=0;
       for(Student st :  s)
     {      
      System.out.println("姓名:"+st.getName()+ i++);   
     }
   }
}

3 个回复

倒序浏览
一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必

须与之一致,否则无法编译,如果源文件中没有一个public类,则文件名与类中没有一致性要求。
至于main()不是必须要放在public类中才能运行程序。
回复 使用道具 举报
JAVA在一个文件中只能有一个public的公共类,而且文件名要与这个public类同名。
比如你把Student的public去掉,你的文件名就要改成 TestDemo.java,以保证和公共类的名称一致。
如果你把两个类的public都去掉,那么就OK了,你的文件名自己随便搞吧。   
但是我们想JAVA中为什么要这样呢?
因为一个文件中最多只能有一个类是public的,这样可以暴露类的定义,方便其他类来访问!
而且要注意一下,当这个文件的类中有主函数的话,那么你如果要在这个文件中定义public类那么这个public类只能是拥有主函数的类。
比如:
class A
{
    public static void main(String[] args)
   {
        ..................;
   }
}
public calss B{.......; }
这样就是错误的,即使你的文件名是A.JAVA也会在运行时候提示:错误: 在类 Student 中找不到主方法, 请将主方法定义为:
                                            public static void main(String[] args)
必须得是public class A{}
            class B{}
然后文件名为A.JAVA
回复 使用道具 举报
还有,类名前写public意思就是这个类可以被不同包的文件调用生成实例。如果不写public即default,但不能把default写上去,它只能被同一个包的文件调用生成实例。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马