public class Car {
static int model = 2005;
static String name = "corvert";
private String color;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
static void show() {
System.out.println("model" + amodel + "name" + name + "color" + this.color);
}
}
此方法不能使用错误的非静态变量,这不能从静态上下文中引用。
答案 0 :(得分:0)
您可以在每个位置访问公共静态方法,但您只能通过类的实例访问静态方法中的非静态方法
答案 1 :(得分:0)
我建议将所有内容设置为静态(或使用构造函数进行本地化)。
当使它成为局部时,构造函数可能如下所示:
private int model;
private String name, color;
public Car(int model, String name, String color) {
this.model = model;
this.name = name;
this.color = color;
}
// setters and getters
public void show() {
System.out.println("model" + amodel + "name" + name + "color" + this.color);
}
现在您可以使用Car car = new Car(2005, "Corvet", "Blue");
然后使用car.show()
,而不必担心静态和非静态访问。
答案 2 :(得分:0)
就像Jon Skeet在评论中所说的那样,你可能不希望你的方法是静态的,这意味着该类的所有成员都有一种方法。
如果您觉得需要使用静态方法,可以将其传递给:static void show(String color)
答案 3 :(得分:0)
您应该使用类名
访问的静态变量static void show() {
System.out.println("model" + amodel + "name" + name + "color" + Car.color);
}
答案 4 :(得分:0)
您可以考虑将Car对象传递给静态方法,而不是创建它的新实例。 &#34;规则&#34; 是静态方法无法访问实例变量和方法,但它可以接收外部对象并使用它们。 < / p>
static void show(Car car) {
System.out.println("model" + model + "name" + name + "color" + car.color);
}
}