这个程序书上是说明“包”的用法的程序,但是我并没有明白。把书上的程序照抄一遍,还现了错误,自己还发现不了。请大家帮忙。import com.horstmann.corejava.*;
import static java.lang.System.*;public class Study
{
public static void main(String[] args)
{
Employee harry = new Employee("Harry Hacher", 5000, 1989, 10, 1);
harry.raiseSalary(5);
System.out.println("name = " + harry.getName());
}
}package com.horstmann.corejava;
import java.util.*; public class Employee
{
private String name;
private double salary;
private Date hireDay;
public Employee(String n, double s, int year, int month, int day)
{
name = n;
salary = s;
GregorianCalendar calendar = new GregorianCalendar(year, month-1, day);
hireDay = calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent)
{
salary = salary + salary*byPercent/100;
}
}错语提示如下:
import static java.lang.System.*;public class Study
{
public static void main(String[] args)
{
Employee harry = new Employee("Harry Hacher", 5000, 1989, 10, 1);
harry.raiseSalary(5);
System.out.println("name = " + harry.getName());
}
}package com.horstmann.corejava;
import java.util.*; public class Employee
{
private String name;
private double salary;
private Date hireDay;
public Employee(String n, double s, int year, int month, int day)
{
name = n;
salary = s;
GregorianCalendar calendar = new GregorianCalendar(year, month-1, day);
hireDay = calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent)
{
salary = salary + salary*byPercent/100;
}
}错语提示如下:
是的 一个文件名是 study 一个是 Employee
第一个文件 import com.horstmann.corejava.*; 去掉
第二个文件 package com.horstmann.corejava; 去掉新手先不要用包了 等以后熟悉了再学习 循序渐进
是啊,必须得出现啊,而且你看出错提示都提示你路径不对了,你看看你的包,前面不是com.horstmann.corejava 吗,你把你的Employee.java编译后放到 com\horstmann\corejava\ 里面,如果没有子文件夹就自己创建,Study.java要跟你的com文件夹同级,然后再运行下Study看到输出 name = Harry Hacher 就对了
既然你用了静态导入import static java.lang.System.*;
就不要System.out.println了,直接out.println就行了
2.一个文件中只能有一个类可以声明为public。
仅供参考。
是啊,必须得出现啊,而且你看出错提示都提示你路径不对了,你看看你的包,前面不是com.horstmann.corejava 吗,你把你的Employee.java编译后放到 com\horstmann\corejava\ 里面,如果没有子文件夹就自己创建,Study.java要跟你的com文件夹同级,然后再运行下Study看到输出 name = Harry Hacher 就对了我把Employee.java,放在com\horstmann\corejava\里了,里面现在有两个文件,一个是Employee.class,一个是Employee.java。
运行Study还是不能成功输出。另外,Employee.java.dak是不是不用管?
大家说得很明白,我终是没有实现出来。17楼说声明时用了double,在new时用了int,书上也是这样的,好像jav整数时可以不用写小数位0,输出进会自动用小数点与后面的0.18楼说一个文件用一个public,书上也是这样说的,但是我后来分别存进了两个java文件里,应该可以用了。
你移动Employee.class到com\horstmann\corejava\下就行了,复制或者剪切其实没影响
Employee harry = new Employee("Harry Hacher", 5000, 1989, 10, 1);
^
错误的源文件: .\Employee.java
文件不包含类Employee
请删除该文件或确保该文件位于正确的源路径子目录中。
1 个错误
一个类只能有一个public的类,且名字与文件名相同;
包路径要对应有文件路径;
其次,楼主在编译的时候,应该把两个class都编译了。