F:\java>javac Date3_ex.java
Date3_ex.java:1: class Date3 is public, should be declared in a file named Date3
.java
public class Date3                          //类的封装
       ^
1 error
源程序如下:
class Date3                          //类的封装

    private  int year,month,day;            //成员变量,私有的
    public Date3(int y,int m,int d)
    {
        year = y;
        month = (((m>=1) & (m<=12)) ? m : 1);
        day = (((d>=1) & (d<=31)) ? d : 1);
    } 
    public int getyear()                    //成员方法,公有的
    {
        return year;
    }
    public boolean isleapyear()
    {
        return (year%400==0) | (year%100!=0) & (year%4==0);
    }
    public void print() 
    {
        System.out.println("date is "+year+'-'+month+'-'+day);
    }
}
public class Date3_ex                              //其他类
{
    public static void main(String args[]) 
    {
        Date3 a = new Date3(2002,6,28) ;
        a.print();
        System.out.println(a.getyear()+" is a leap year,"+a.isleapyear());
    }
}

解决方案 »

  1.   

    public的class
    class名要和.java的文件名一样
      

  2.   

    上面的错误提示是因为public class Date3这句
    Date3被定义成了public的文件名确是:Date3_ex.java但是下面的代码已经改成了class Date3
    在我的机器上编译成功生成了两个.class文件
      

  3.   

    建议你将class Date3 的类名字改一下从F:\java>javac Date3_ex.java和public class Date3_ex         
    上看 应该没问题
      

  4.   

    Date3_ex.java:1: class Date3 is public, should be declared in a file named Date3
    包含main函数的类名和文件名一致
      

  5.   

    你先看看你的程序的第一行到底写的什么
    是public class Date3
    还是class Date3如果写class Date3就对
    写public class Date3就错这和机器没有关系