我声明一个类A,同时把类放在一个声明的包中,同时声明另一个类B,B引用了A的成员函数(构造函数),在编译时,我把A类的字节码文件放在F盘,然后设置classpath=A字节码所在的路径,然后编译类B,就无法编译了!这是为什么?明明我设置了B要引用的文件的路径啊!!!为什么不对????

解决方案 »

  1.   

    [b]ps[/b]我把B放在E盘编译的!!
      

  2.   

    我的理解:虽然你把classpath设置为A了,但B类中的import引用的A找不到啊。
      

  3.   

    package Mypackage; //声明存放类的包
    import java.util.*; //引用java.util 包
    public class LX4_1_YMD {
    private int year,month,day;
      
    public LX4_1_YMD(int y,int m,int d) {
       year = y;
       month = (((m>=1) & (m<=12)) ? m : 1);
       day = (((d>=1) & (d<=31)) ? d : 1);
    }

    public LX4_1_YMD() {
       this(0,0,0);
    }

    public static int thisyear() {
       return Calendar.getInstance().get(Calendar.YEAR);//返回当年的年份
    }

    public int year() {
       return year;//返回年份
    }

    public String toString(){
       return year+"-"+month+"-"+day;//返回转化为字符串的年-月-日
    }
    }
    这是第一个类!!!我把它编译的字节码文件放在F根目录下!!!
      

  4.   

    import Mypackage.LX4_1_YMD; //引用Mypackage 包中的LX4_1_YMD 类
    public class LX4_2
    {
    private String name;
    private LX4_1_YMD birth;

    public static void main(String args[]) {
        LX4_2 a = new LX4_2("张驰",1990,1,11);
       a.output();
    }
    public LX4_2(String n1,LX4_1_YMD d1) {
    name = n1;
    birth = d1;
    }
    public LX4_2(String n1,int y,int m,int d) {
        this(n1,new LX4_1_YMD(y,m,d));//初始化变量与对象
    }
    public int age() {//计算年龄
    return LX4_1_YMD.thisyear() - birth.year(); //返回当前年与出生年的差即年龄
    }
    public void output() {
    System.out.println("姓名 : "+name);
    System.out.println("出生日期: "+birth.toString());
    System.out.println("今年年龄 : "+age());
    }
    }
    这是第二个类,在编译前我就把classpath设置了(第一个类的字节码路径),可是编译这个类的时候还是出错了!!!