【发布时间】:2018-01-04 22:33:07
【问题描述】:
我有错误 java: non-static variable this cannot be referenced from a static context whencompile the code in line Man m1 = new Man("a1", "b1", 11);如何解决?
public class Solution
{
public static void main(String[] args)
{
//create two object of every class here
Man m1 = new Man("a1", "b1", 11);
Man m2 = new Man("a2", "b2", 12);
Woman w1 = new Woman("a11", "b11", 13);
Woman w2 = new Woman("a22", "b22", 14);
//output them to screen here
System.out.println(m1.name + " " + m1.age + " " + m1.address);
System.out.println(m2.name + " " + m2.age + " " + m2.address);
System.out.println(w1.name + " " + w1.age + " " + w1.address);
System.out.println(w2.name + " " + w2.age + " " + w2.address);
}
//add your classes here
public class Man
{
private String name;
private String address;
private int age;
public Man(String name, String address, int age)
{
this.name = name;
this.address = address;
this.age = age;
}
}
}
}
【问题讨论】:
-
您需要帮助以了解错误的含义,还是仅仅帮助解决问题?静态上下文意味着您不在类的“实例”中(因此它没有任何成员数据/函数等) - 因此当您访问非静态变量时(仅存在于类的实例中) 它说你不能,因为你没有实例。
-
你的 Man 类不是静态的。这意味着它必须具有对外部类的引用。main 是静态的并且没有隐式的外部类。简单的解决方案是将您的 Man 类设为静态。
标签: java non-static