照着JAVA核心技术打的代码public class StaticText {
public static void main(String[] args)
{
Employee[] staff=new Employee[3];
staff[0]=new Employee("yanshi",10000);
staff[1]=new Employee("njx",60000);
staff[2]=new Employee("su",10000);
for(int i = 0; i<staff.length;i++) 
{ staff[i].setId();
System.out.println("name="+staff[i].getName()+",salary="+staff[i].getSalary()+"ID"+staff[i].getId());
    }
int n=Employee.getNextId();
System.out.print("nextid"+n);
}

class Employee
{
private String name;
private int id;
private static  int nextId=1;
private double salary;
   public Employee(String n,double s )
{
 name=n;
 salary=s;
 id=0;
 
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public int getId()
{
return id;
}
public void setId()
{
id=nextId;
nextId++;
}
public static int getNextId()
{
return nextId;
}
public static void main(String[] args)
{
Employee e=new Employee("wangxin",10000);
System.out.println(e.getName()+" "+e.getSalary());
}
}
}
结果eclips报错.....修改了好错次都没办法解决问一下 是否是两个main 运行方式错误
Exception in thread "main" java.lang.Error: 无法解析的编译问题:
没有任何类型 StaticText 的外层实例可访问。必须用类型 StaticText 的外层实例(例如,x.new A(),其中 x 是 StaticText 的实例)来限定分配。
没有任何类型 StaticText 的外层实例可访问。必须用类型 StaticText 的外层实例(例如,x.new A(),其中 x 是 StaticText 的实例)来限定分配。
没有任何类型 StaticText 的外层实例可访问。必须用类型 StaticText 的外层实例(例如,x.new A(),其中 x 是 StaticText 的实例)来限定分配。 at StaticText.main(StaticText.java:5)

解决方案 »

  1.   

    代码块范围错了,现在可以了:public class StaticText {
    public static void main(String[] args) {
    Employee[] staff = new Employee[3];
    staff[0] = new Employee("yanshi", 10000);
    staff[1] = new Employee("njx", 60000);
    staff[2] = new Employee("su", 10000);
    for (int i = 0; i < staff.length; i++) {
    staff[i].setId();
    System.out.println("name=" + staff[i].getName() + ",salary="
    + staff[i].getSalary() + "ID" + staff[i].getId());
    }
    int n = Employee.getNextId();
    System.out.print("nextid" + n);
    }
    }class Employee {
    private String name; private int id; private static int nextId = 1; private double salary; public Employee(String n, double s) {
    name = n;
    salary = s;
    id = 0; } public String getName() {
    return name;
    } public double getSalary() {
    return salary;
    } public int getId() {
    return id;
    } public void setId() {
    id = nextId;
    nextId++;
    } public static int getNextId() {
    return nextId;
    } public static void main(String[] args) {
    Employee e = new Employee("wangxin", 10000);
    System.out.println(e.getName() + " " + e.getSalary());
    }
    }
      

  2.   

    static class Employee{//在前面加上static就可以了
    }
      

  3.   

    这次.......有报错了.......说是此行有多个标记,已定义类型EmployeeException in thread "main" java.lang.Error: 无法解析的编译问题: at StaticText.main(StaticText.java:57)