您的位置:首页 > 其它

day59(5.9)程序报错类型之类中的静态方法不能直接调用动态方法

2014-05-12 17:29 246 查看
报了这样的错,原因是l 因为:No
enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
原来我写的内部类是动态的,也就是开头以public class开头。而主程序是public static class main。在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。所以在不做其他变动的情况下,最简单的解决办法是将public
class改为public static class.

所以只要在class 前面加static 就行了。

改正后,代码成功。

package package1;

public class StaticTest {

public static void main(String[] args){//主方法

Employee[] staff=new Employee[3];

staff[0]=new Employee("Tom",40000);

staff[1]=new Employee("Dick",60000);

staff[2]=new Employee("Harry",40000);

}

static class Employee{//定义一个empoyee类

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 int getNextId(){

return nextId;

}

public void main (String[] args){

Employee e=new Employee("Harry",50000);

System.out.println(e.getName()+""+e.getSalary());

}

private String name;

private double salary;

private int id;

private int nextId=1;

}

}

ParamTest.java未完待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐