//下面是调用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;
}
{
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;
}
{
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());
}
}
}
怎么倒入Employee???
class TestEmployee 存成 TestEmployee.java两个文件放到同一个目录下面。
只要建一个project把两个文件引进来,放到同一个package里面就可以了。
class TestEmployee 存成 TestEmployee.java两个文件放到同一个目录下面。
===============================
我的现在情况跟上面所说的一样啊!
我现在使用EditPlus
(我已经在Eclipse里面编过了。)然后你再去找你自己的TestEmployee存在的问题。
class TestEmployee 存成 TestEmployee.java --这个编译不过.而且我也使用你修改过的代码进行编译
2,for循环写法不对
3,java区分大小写,getHireDay -> getHireday还有,我用java的时候,我一直都用ArrayList来代替Object的数组。
你的数组的写法也有问题,但是我不知道应该怎么写,不发表意见了。
用工具用惯了。:P
比如两个文件放在 C:\src\test目录下面。
在 C:\src目录执行下面这个语句就可以了。javac -classpath C:\src test\TestEmployee.java
这样都是没有什么错误! 但在D:\JSP 目录下没有看到 TestEmployee.class 啊.
chalsy(白梓健) 谢谢 你的指导! 如果真的不行就放到同一个包里面算了.其实我也是想测试一下这样是怎么才能调用得到的. 呵呵 :)
你再试试看呢?目录结构: 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());
}
}
}
把类变成公有的.
这样都是没有什么错误! 但在D:\JSP 目录下没有看到 TestEmployee.class 啊.还是这样啊!
还是不是JDK 版本问题啊! 我使用的是JDK1.3
不知道原因是不是你用的编译语句和我不一样。
你仔细瞅瞅。
Employee 没有找到. 了?这样就是编译不过阿!
你仔细按照我的说明来做。source我并没有再改。
你的机器上应该改成:目录结构: D:\JSP
编译命令:javac -classpath D:\JSP JSP\TestEmployee.java
注意这里: ↑↑↑↑↑和JDK版本没有关系,你没有用到JDK1.4才会有的类。
免费招聘、求职。IT人工作的天堂。希望能够为大家所用。
然后关掉不需要的command窗口。
关掉所有可能正在打开这个文件的程序。
D:JSP> javac -classpath TestEmployee.java 如果使用这样的命令就不行:
C:> javac -classpath D:\JSP JSP\TestEmployee.java
就会出现这样的错误: error: can not read JSP\TestEmployee.java chalsy(白梓健) 大哥能解释一下吗?
Exception in thread "main" java.lang.NoClassDefFoundError: TestEmployee
我这里:
正: E:\>javac -classpath E:\jsp jsp\TestEmployee.java
误: E:\jsp>javac -classpath TestEmployee.java我猜想是因为你没有到D:根目录下执行,
跑到别的目录下面去了,根据相对路径找不到文件。
C:> javac -classpath D:\JSP JSP\TestEmployee.java解决了就好了,估计过一段时间你就能自己知道原因了。PS:是大姐,不是大哥。嘻嘻
虽然用Eclipse是好的。我再看一下。
Exception in thread "main" java.lang.NoClassDefFoundError: 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
我的java version "1.4.2_01",不知道会不会跟你的环境有差别。还真是好好复习+练习了一下。
这个题目我做过
先编译TestEmployee.java 就行了 不需要其他的OK
同时也感谢各位. 散分.