Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组位于主方法/类以外的单独类中_Java_Arrays_Subclass - Fatal编程技术网

Java 数组位于主方法/类以外的单独类中

Java 数组位于主方法/类以外的单独类中,java,arrays,subclass,Java,Arrays,Subclass,我不断地得到这个错误,它是关于在数组去伸缩后需要大括号。 我不知道该怎么办。我想创建一个不在main方法中的数组。我希望数组是用子类填充的超类型。 这是我的密码 public class ArrayTest { Employee [] employees = new Manager[2]; employees[0]= new Manager("Thomas", "Cummings"); } public class Manager extends Employee{ private i

我不断地得到这个错误,它是关于在数组去伸缩后需要大括号。

我不知道该怎么办。我想创建一个不在main方法中的数组。我希望数组是用子类填充的超类型。 这是我的密码

public class ArrayTest {

Employee [] employees = new Manager[2];
employees[0]= new Manager("Thomas", "Cummings");

}


public class Manager extends Employee{
private int employees;

public Manager() {
    super();
    employees = 0;
}

public Manager(int employees) {
    super();
    this.employees = employees;
}

public Manager(String f_name, String l_name) {
    super(f_name, l_name);
}

public Manager(String f_name, String l_name, int employees) {
    super(f_name, l_name);
    this.employees = employees;
}

public int getEmployees() {
    return employees;
}

public void setEmployees(int employees) {
    this.employees = employees;
}

public void setManager(String f_name, String l_name){
    this.setF_name(f_name);
    this.setL_name(l_name);
}

public void setManager(String f_name, String l_name, int employees){
    this.setF_name(f_name);
    this.setL_name(l_name);
    this.employees = employees;
}
@Override
public String toString(){
    return "\nName " + getF_name() + " " + getL_name() +
            "\nEmployee ID " + getEmp_id() + 
            "\nNum of employees " + getEmployees();
}
}


public class Employee {

private String f_name, l_name;
private static long emp_id = 001;

public Employee(){
    f_name = "";
    l_name = "";
    emp_id ++;
}
public Employee(String f_name, String l_name) {
    this.f_name = f_name;
    this.l_name = l_name;
    emp_id ++;
}
public String getF_name() {
    return f_name;
}
public void setF_name(String f_name) {
    this.f_name = f_name;
}
public String getL_name() {
    return l_name;
}
public void setL_name(String l_name) {
    this.l_name = l_name;
}
public long getEmp_id() {
    return emp_id;
}
public void setEmp_id(long emp_id) {
    Employee.emp_id = emp_id;
}

public String toString(){
    return "\nName " + getF_name() + " " + getL_name() +
            "\nEmployee ID " + getEmp_id();
}
}
这是一条需要放在适当的可执行块(方法、构造函数、初始化块)中的语句


这是一条需要放在适当的可执行块(方法、构造函数、初始化块)中的语句。

错误原因如下:

employees[0]= new Manager("Thomas", "Cummings");
因为您不能将可执行语句放在java类的代码块(方法、块、构造函数)之外

解决此问题的一种方法是在构造函数中移动initialization语句:

public class ArrayTest {

Employee [] employees = new Manager[2];

public ArrayTest() {
    employees[0]= new Manager("Thomas", "Cummings");
}

}

错误原因如下所述:

employees[0]= new Manager("Thomas", "Cummings");
因为您不能将可执行语句放在java类的代码块(方法、块、构造函数)之外

解决此问题的一种方法是在构造函数中移动initialization语句:

public class ArrayTest {

Employee [] employees = new Manager[2];

public ArrayTest() {
    employees[0]= new Manager("Thomas", "Cummings");
}

}