public class StaticTest 
{
public static void main(String[] args)
{
Employee[] staff=new Employee[3];
    staff[0]=new Employee("wang",2000000);
    staff[1]=new Employee("yue",3000000);
    staff[2]=new Employee("hua",400000);

for(Employee e:staff)
{
e.setId();
System.out.println("name="+e.getName()+" salary="+e.getSalary()+" id="+e.getId());

}
int n=Employee.getNextId();
System.out.println("next available id is:"+n);

}
}class Employee
{
private String name;
private double salary;
private int id;
private static int nextId=1;
public Employee(String n,double s)
{
name=n;
salary=s;
}

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("wang",2000000);
System.out.println("name="+e.getName()+" salary="+e.getSalary());
}

}
这个程序输入完了之后,运行的时候怎么出了一个对话框选择类型什么什么的,就是我不知道该怎么运行这个程序了,高手能告诉我一下吗?我用的开发工具是eclipse.

解决方案 »

  1.   

    右键 - 运行 - 选择 Run as a Application
      

  2.   

    应为你里面是两个mian方法,所以提示你运行哪一个
    你想调试哪个就选择哪个
      

  3.   

    你的两个类完全可以分开写,然后想怎么测试就怎么测试啊
    要不就一个一个的测试,别两个都写上main方法,写上了就要你选择了
    不知道你明白了没有?
      

  4.   

    书上的例子就是这么写的,就是利用main方法进行单元测试。   我就是想知道这种情况下该怎么运行这个程序,出来一个对话框让你选东西,但是什么东西都没有啊,我不知道究竟是怎么选择。我用的eclipse.
      

  5.   

    那是不是你的eclipse有问题啊。
    我把这段程序放到我的eclipse中然后Run as java Application 也弹出一个对话框,但是可以选择运行两个main执行那个。那个书上这样写目的是让你坐单元测试,不是为了告诉你关于main入口的问题吧。
    所以这个问题要么你分到两个.java文件中写。要么用打开Outline对这两个class分别运行。
      

  6.   

    你好,我是java新手,我也看到java核心技术这儿利用main方法来单元测试的技巧,我的问题是:Employee类中main方法是静态的,但它访问了Employee中的实例,这与静态方法不能访问实例域,但这里明显已经访问了实例,不知道这个问题你现在已经解决了没?