package Test;public class StaticTest { /**
 * @param args
 */
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",65000);

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

int n=Employee.getNextId();
System.out.println("Next available id="+n); }}class Employee    //这里提示错误:已定义类型
{
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("Hary",50000);
System.out.println(e.getName()+""+e.getSalary());
}

private String name;
private double salary;
private int id;
private static int nextId=1;
}
java.lang.NoSuchMethodError: main
Exception in thread "main" 

解决方案 »

  1.   

    class Employee    
    这个类里面也有main方法,把它去掉试试
      

  2.   

    刚才复制你的代码到我的MyEclipse中执行,我的没有错误
    运行StaticTest类,结果是:
    name=Tom,id=1,salary=40000.0
    name=Dick,id=2,salary=60000.0
    name=Harry,id=3,salary=65000.0
    Next available id=4
    运行Employee类,结果是:
    Hary50000.0
    应该是你的环境没有配好吧,我用的是JDK1.6
      

  3.   

    现在我又在控制台CMD里执行以下,结果还是没有问题
    Microsoft Windows XP [版本 5.1.2600]
    (C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\Administrator>d:D:\>javac -d . StaticTest.javaD:\>java Test.Employee
    Hary50000.0D:\>java Test.StaticTest
    name=Tom,id=1,salary=40000.0
    name=Dick,id=2,salary=60000.0
    name=Harry,id=3,salary=65000.0
    Next available id=4D:\>