こんにちは、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());
}
}
奇妙なことに、2 番目の import ステートメントは問題なく動作しますが、3 番目のステートメントでは問題なく動作します。
- アクセスできません
Employee
- 不正なクラス ファイル:
./Employee.class
javac Hello.java を使用してコンパイルしています
従業員クラスはパッケージ管理に含まれています。構造は
"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;
}
}