为何把packageTest.java中的import com.horstmann.core.java.*;改成import com.horstmann.corejava. Employee.java.才能编译通过,//packageTest.javaimport com.horstmann.corejava.*;
public class packageTest
{
public static void main (String[] args)
{
//because of the import statement, we don't have to
//use com.horstmann.corejava.Employee here
Employee harry = new Employee ("Harry Hacker",50000,1989,10,1);
//raise salary by 5%
harry.raiseSalary(5);
//print out information about harry
System.out.println("name="+harry.getName()+",salary="+harry.getSalary());
}
}// Employee.java
package com.horstmann.corejava;
import java.util.*; class Employee
{
public Employee(String n, double s, int year, int month, int day)
{
name = n;
salary = s;
GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);
// GregorianCalendar uses 0 for January
hireDay = calendar.getTime();
} public String getName()
{
return name;
} public double getSalary()
{
return salary;
} public Date getHireDay()
{
return hireDay;
} public void raiseSalary(double byPercent)
{
double raise = salary * byPercent / 100;
salary += raise;
} private String name;
private double salary;
private Date hireDay;
}
public class packageTest
{
public static void main (String[] args)
{
//because of the import statement, we don't have to
//use com.horstmann.corejava.Employee here
Employee harry = new Employee ("Harry Hacker",50000,1989,10,1);
//raise salary by 5%
harry.raiseSalary(5);
//print out information about harry
System.out.println("name="+harry.getName()+",salary="+harry.getSalary());
}
}// Employee.java
package com.horstmann.corejava;
import java.util.*; class Employee
{
public Employee(String n, double s, int year, int month, int day)
{
name = n;
salary = s;
GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);
// GregorianCalendar uses 0 for January
hireDay = calendar.getTime();
} public String getName()
{
return name;
} public double getSalary()
{
return salary;
} public Date getHireDay()
{
return hireDay;
} public void raiseSalary(double byPercent)
{
double raise = salary * byPercent / 100;
salary += raise;
} private String name;
private double salary;
private Date hireDay;
}
写全也是:import com.horstmann.corejava.Employee(.java去掉);为什么用*,为什么用Employee?import com.horstmann.corejava.*;
表示编译当前java文件时,去找包com.horstmann.corejava下的所有类,import com.horstmann.corejava.Employee;
表示编译当前java文件时,去找包com.horstmann.corejava下的类Employee,我们通常使用前者,因为当前可能用到该包下一些类,而不仅仅是Employee一个类,这也是偷懒的写法。不过现在的IDE都很智能,可以识别我们在代码中使用了哪些类,自动在前面加import语句。(e.g. Eclipse)如果象你说的那样用前者会出错,原因可能:
1.import其他包的时候也用了*号,而其他包中可能有一个Employee类。
2.当前代码所在的包中可能有一个Employee类。