public class Employee
{
public Employee(String n,double s)
{
name =n; salary =s; }
public Employee()
{}

public String getname()
{
return name;
}
public double getsalary()
{
return salary;
} private String name; private double salary;};
class Emp
{
Employee myself =new Employee("dwp",10000); public static void main(String[] args) 
{
System.out.println("Name:"+myself.getname()+",Salary:"+myself.getsalary());
}
}Employee.java:40: non-static variable myself cannot be referenced from a static context
System.out.println("Name:"+myself.getname()+",Salary:"+myself.getsalary());
大家说说是怎么回事?

解决方案 »

  1.   

    class Employee
    {
    public Employee(String n,double s)
    {
    name =n; salary =s; }
    public Employee()
    {}

    public String getname()
    {
    return name;
    }
    public double getsalary()
    {
    return salary;
    } private String name; private double salary;}
     class Emp
    {
    public static void main(String[] args) 
    {
            Employee myself =new Employee("dwp",10000);
    System.out.println("Name:"+myself.getname()+",Salary:"+myself.getsalary());
    }
    }
      

  2.   

    Employee myself =new Employee("dwp",10000);
    放到main()方法内
      

  3.   

    main是static,而你的myself 不是的,所以不能在static方法里面调用非static的reference,放到main里面定义myself就可以了
      

  4.   

    还要改一下“public” 
    class Employee
    {
    public Employee(String n,double s)
    {
    name =n;
    salary =s;
    }
    public Employee()
    {}
    public String getname()
    {
    return name;
    }
    public double getsalary()
    {
    return salary;
    }
    private String name;
    private double salary;
    };public class Emp
    {
    public static void main(String[] args) 
    {
    Employee myself =new Employee("dwp",10000);
    System.out.println("Name:"+myself.getname()+",Salary:"+myself.getsalary());
    }
    }
      

  5.   

    class Emp虽然包含了main方法,单并不是说main能访问Emp里面的成员myself,main并不是Emp的方法,main方法可以放到其他类中去.但是main不能访问任何类的非公有成员
      

  6.   

    Employee myself =new Employee("dwp",10000);
    放到main()方法内
    又出现java.lang.NoSuchMethodError: main
    Exception in thread "main"
      

  7.   

    正确的程序应该如下: class Employee
    {
    public Employee(String n,double s)
    {
    name =n; salary =s; }
    public Employee()
    {}

    public String getname()
    {
    return name;
    }
    public double getsalary()
    {
    return salary;
    } private String name; private double salary;};
    public class Emp
    {
    public static void main(String[] args) 
    {
    Employee myself =new Employee("dwp",10000);
    System.out.println("Name:"+myself.getname()+",Salary:"+myself.getsalary());
    }
    }