【发布时间】:2013-07-15 12:04:03
【问题描述】:
您好,我正在玩创建 java 包。
我在一个名为 admin 的文件夹中创建了一个包,其中包含一个名为 Employee 的文件 - 这可以正确编译。在这个包之外,我有另一个正在导入它的 java 文件。这是源代码。
import java.util.*;
// this works --> import admin.Employee;
import admin.*; // this doesn't
public class Hello {
public static void main(String[] args) {
Employee h = new Employee("James", 20000);
System.out.println(h.getName());
}
}
奇怪的是,第二个 import 语句工作正常,但第三个我得到了
- 无法访问
Employee - 错误的类文件:
./Employee.class
我只是用javac Hello.java来编译
员工类在 admin 包中。结构是
文件夹“admin” -> 包含“Employee.class”和“Employee.java” 此文件夹外是 hello.java 文件。
package admin;
import java.util.*;
public class Employee
{
private static int nextId;
private int id;
private String name = "";
private double salary;
// static initialization block
static
{
Random generator = new Random();
// set nextId to a random number between 0 and 9999
nextId = generator.nextInt(10000);
}
// object initialization block
{
id = nextId;
nextId++;
}
// three overloaded constructors
public Employee(String n, double s)
{
name = n;
salary = s;
}
public Employee(double s)
{
// calls the Employee(String, double) constructor
this("Employee #" + nextId, s);
}
// Default constructor
public Employee()
{
// name initialized to ""--see below
// salary not explicityl set--initialized to 0
// id initialized in initialization block
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public int getId()
{
return id;
}
}
【问题讨论】:
-
您是否公开了 Employee 类?
-
Employee类的访问说明符是什么? -
你能告诉我们
Employee的源代码,你的包结构以及你是如何编译文件的吗? -
谢谢大家,我现在编辑了它,包含员工源代码
-
区分大小写的文件路径;也许employee.java i.o. Employee.java?