//下面是调用Employee 的测试, 但他们两个类不在同一个文件里面. 你说怎么才能编译得过. class  TestEmployee
{
public static void main(String[] args) 
{
Employee[] staff = new Empolyee[3];
staff[0] = new Employee('TOM', 7500, 1987, 12, 15);
staff[1] = new Employee('Jack', 5000, 1989, 10, 1);
staff[2] = new Employee('Mike', 4000, 1990, 3, 15);
for (int i = 0; i < staff.length ; i++)
{
staff[i].raiseSalary(5);
}
for (int i = 0; staff.length ; i++)
{
Employee e = staff[i];
System.out.println("name =" + e.getName()
+ ",salary = " + e.getSalary()
+ ",hireday = " + e.getHireDay());
}
}
}
//
import java.util.*;
class Employee 
{
public Employee(String name, double s, int year, int month, int day)
{  
       FName    = name;
   Fsalary  = s;
   GregorianCalendar calendar 
   = new GregorianCalendar(year, month - 1, day);
   Fhireday = calendar.getTime();
}

public String getName()
{
return FName;
} public double getSalary()
{
return Fsalary;
} public Date getHireday()
{
return Fhireday;
} public void raiseSalary(double byPercent)
{
double raise = Fsalary * (1 + byPercent / 100);
Fsalary = Fsalary + raise;
}
private String FName;
private double Fsalary;
private Date Fhireday;
}

解决方案 »

  1.   

    import java.util.ArrayList;class  TestEmployee
    {
        public static void main(String[] args) 
        {
            ArrayList staff = new ArrayList();
            staff.add(new Employee("TOM", 7500, 1987, 12, 15));
            staff.add(new Employee("Jack", 5000, 1989, 10, 1));
            staff.add(new Employee("Mike", 4000, 1990, 3, 15));
            for (int i = 0; i < staff.size(); i++)
            {
                ((Employee) staff.get(i)).raiseSalary(5);
            }
            for (int i = 0;  i < staff.size(); i++)
            {
                Employee e = (Employee) staff.get(i);
                System.out.println("name =" + e.getName()
                    + ",salary = " + e.getSalary()
                    + ",hireday = " + e.getHireday());
            }
        }
    }
      

  2.   

    放在一个包里就没问题!不在一个包里就要倒入Employee
      

  3.   

    To:  xiachedan(瞎扯蛋) 
    怎么倒入Employee???
      

  4.   

    我给你改写过了。你把class Employee 存成 Employee.java
    class  TestEmployee 存成 TestEmployee.java两个文件放到同一个目录下面。
      

  5.   

    你可以用 Eclipse 来开发,比较方便。
    只要建一个project把两个文件引进来,放到同一个package里面就可以了。
      

  6.   

    class Employee 存成 Employee.java
    class  TestEmployee 存成 TestEmployee.java两个文件放到同一个目录下面。
    ===============================
    我的现在情况跟上面所说的一样啊! 
    我现在使用EditPlus
      

  7.   

    你原来的source是编不过的。你可以先用我给你得source编译一下。
    (我已经在Eclipse里面编过了。)然后你再去找你自己的TestEmployee存在的问题。
      

  8.   

    class Employee 存成 Employee.java  --这个已经能编译
    class  TestEmployee 存成 TestEmployee.java   --这个编译不过.而且我也使用你修改过的代码进行编译
      

  9.   

    问题至少有以下3点:1,java里面的字符串是双引号。
    2,for循环写法不对
    3,java区分大小写,getHireDay -> getHireday还有,我用java的时候,我一直都用ArrayList来代替Object的数组。
    你的数组的写法也有问题,但是我不知道应该怎么写,不发表意见了。
      

  10.   

    我没有用EditPlus编译过java文件。如果是命令行编译的话,我就不清楚了~~~
    用工具用惯了。:P
      

  11.   

    找到方法了。
    比如两个文件放在 C:\src\test目录下面。
    在 C:\src目录执行下面这个语句就可以了。javac -classpath C:\src test\TestEmployee.java
      

  12.   

    javac -classpath D:\JSP\TestEmployee.java
    这样都是没有什么错误! 但在D:\JSP 目录下没有看到 TestEmployee.class 啊.
    chalsy(白梓健) 谢谢 你的指导! 如果真的不行就放到同一个包里面算了.其实我也是想测试一下这样是怎么才能调用得到的. 呵呵 :)
      

  13.   

    不在同一个目录下,却没有package,显然是不对的
      

  14.   

    经过我的不懈努力。终于又成功了。哈哈。
    你再试试看呢?目录结构: E:\jsp  (本机没有D盘。)
    编译命令:javac -classpath E:\jsp jsp\TestEmployee.java
    源代码:// Employee 
    import java.util.*;
    class Employee 
    {
        public Employee(String name, double s, int year, int month, int day)
        {  
           FName    = name;
           Fsalary  = s;
           GregorianCalendar calendar 
               = new GregorianCalendar(year, month - 1, day);
           Fhireday = calendar.getTime();
        }
        
        public String getName()
        {
            return FName;
        }    public double getSalary()
        {
            return Fsalary;
        }    public Date getHireday()
        {
            return Fhireday;
        }    public void raiseSalary(double byPercent)
        {
            double raise = Fsalary * (1 + byPercent / 100);
            Fsalary = Fsalary + raise;
        }
        private String FName;
        private double Fsalary;
        private Date Fhireday;
    }=======// TestEmployee
    import java.util.ArrayList;class  TestEmployee
    {
        public static void main(String[] args) 
        {
            ArrayList staff = new ArrayList();
            staff.add(new Employee("TOM", 7500, 1987, 12, 15));
            staff.add(new Employee("Jack", 5000, 1989, 10, 1));
            staff.add(new Employee("Mike", 4000, 1990, 3, 15));
            for (int i = 0; i < staff.size(); i++)
            {
                ((Employee) staff.get(i)).raiseSalary(5);
            }
            for (int i = 0;  i < staff.size(); i++)
            {
                Employee e = (Employee) staff.get(i);
                System.out.println("name =" + e.getName()
                    + ",salary = " + e.getSalary()
                    + ",hireday = " + e.getHireday());
            }
        }
    }
      

  15.   

    这么个问题也忙上半天。说用了4年的java,估计要被人嘲笑了。呵呵。
      

  16.   

    package ,import 给他引过来不就行了吗
    把类变成公有的.
      

  17.   

    javac -classpath D:\JSP\TestEmployee.java
    这样都是没有什么错误! 但在D:\JSP 目录下没有看到 TestEmployee.class 啊.还是这样啊!
      

  18.   

    To:  chalsy(白梓健)  会有人嘲笑的. 没有遇到的问题多的是.就看怎么去解决了!
      

  19.   

    按编译的提示应该是: Employee 没有找到.
    还是不是JDK 版本问题啊! 我使用的是JDK1.3
      

  20.   

    我确实看到class了。
    不知道原因是不是你用的编译语句和我不一样。
    你仔细瞅瞅。
      

  21.   

    啊?你碰到提示 
      Employee 没有找到.  了?这样就是编译不过阿!
    你仔细按照我的说明来做。source我并没有再改。
    你的机器上应该改成:目录结构: D:\JSP 
    编译命令:javac -classpath D:\JSP JSP\TestEmployee.java
                 注意这里:       ↑↑↑↑↑和JDK版本没有关系,你没有用到JDK1.4才会有的类。
      

  22.   

    我顶!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!
    免费招聘、求职。IT人工作的天堂。希望能够为大家所用。
      

  23.   

    javac -classpath D:\JSP JSP\TestEmployee.java  错误提示是这样:error: can not read  JSP\TestEmployee.java
      

  24.   

    碰到这个问题,你需要确认D:\jsp下面有TestEmployee.java文件。
    然后关掉不需要的command窗口。
    关掉所有可能正在打开这个文件的程序。
      

  25.   

    问题已经解决! 为什么要在 CMD这个命令窗口输入 这样的命令才可以编译通过.
      D:JSP> javac -classpath TestEmployee.java  如果使用这样的命令就不行:
      C:> javac -classpath D:\JSP JSP\TestEmployee.java
      就会出现这样的错误:  error: can not read  JSP\TestEmployee.java  chalsy(白梓健) 大哥能解释一下吗?
      

  26.   

    还有: C:>java TestEmployee  会出现下面的错误.
      Exception in thread "main" java.lang.NoClassDefFoundError: TestEmployee
      

  27.   

    诶?到底你用的哪个是对的啊?
    我这里:
    正: E:\>javac -classpath E:\jsp jsp\TestEmployee.java
    误: E:\jsp>javac -classpath TestEmployee.java我猜想是因为你没有到D:根目录下执行,
    跑到别的目录下面去了,根据相对路径找不到文件。
    C:> javac -classpath D:\JSP JSP\TestEmployee.java解决了就好了,估计过一段时间你就能自己知道原因了。PS:是大姐,不是大哥。嘻嘻
      

  28.   

    命令行这东西用的很少,据说在国外很流行,国内就不行了,还是用eclipse吧,方便。
      

  29.   

    我跑了一下确实不行~~~
    虽然用Eclipse是好的。我再看一下。
      

  30.   

    D:\JSP> javac -classpath TestEmployee.java  这个是对的嘛! 大姐: 辛苦了.但下面执行不了啊!C:>java TestEmployee  会出现下面的错误.
      Exception in thread "main" java.lang.NoClassDefFoundError: TestEmployee
      

  31.   

    我刚入JAVA 的, 人间都叫我从这里开始学习.
    照办了. 那还是听姐姐的呢. 想学好还是命令行吧.
    大姐.
      

  32.   

    晕死,这样可以了吧?E:\jsp>java -classpath E:\jsp TestEmployee
    name =TOM,salary = 15375.0,hireday = Tue Dec 15 00:00:00 CST 1987
    name =Jack,salary = 10250.0,hireday = Sun Oct 01 00:00:00 CST 1989
    name =Mike,salary = 8200.0,hireday = Thu Mar 15 00:00:00 CST 1990
      

  33.   

    要把这个文件所在的目录指定为classpath。
    我的java version "1.4.2_01",不知道会不会跟你的环境有差别。还真是好好复习+练习了一下。
      

  34.   

    只许要找到主类   进行编译  他会自动找到需要的类 
    这个题目我做过
    先编译TestEmployee.java  就行了  不需要其他的OK
      

  35.   

    chalsy(白梓健) : 可以了!  辛苦啦.
     同时也感谢各位. 散分.