求教一个java问题 设计一个交通工具类Vehicle,其中的属性包括:速度speed、类别kind、颜色color;方法包括

置速度、设置颜色、取得类别、取得颜色。创建Vehicle的对象,为其设置新速度和颜色,并显示其状态(所有属性)。
代码:
class Vehicle
{
private static int speed;
private static String kind;
private static String color;

public void setSpeed(int s)
{
speed=s;
}
public void setColor(String c)
{
color=c;
}
public String getKind(String string){return kind;}
public String getColor(String string){return color;}
public static void main(String args[])
{
Vehicle veh=new Vehicle();
veh.setSpeed(100);
veh.setColor("black");
veh.getKind("car");
veh.getColor("black");
System.out.println("kind="+kind+"\nspeed="+speed+"\ncolor="+color);
}

}
结果:
kind=null
speed=100
color=black
这是我编写的代码,为什么种类kind显示不了啊,该怎么修改啊?急!

没搞清楚get与set方法是怎样写的!
先分析你的代码:涉及变量kind的方法是public String getKind(String string){return kind;} 下面又调用这个方法 veh.getKind("car"); 由你定义的方法看你传入的参数与返回的参数无关--【一个是string ,一个是kind】,即:即使调用这个方法也没有对kind这个变量赋值,因此kind 仍旧为默认值 null

正确写法:
class Vehicle
{
private static int speed;
private static String kind;
private static String color;

public void setSpeed(int s)
{
speed=s;
}
public void setColor(String c)
{
color=c;
}
public void setKind(String string){kind=string;} //这种赋值最好写成setXXX的形式
public static void main(String args[])
{
Vehicle veh=new Vehicle();
veh.setSpeed(100);
veh.setColor("black");
veh.setKind("car");
System.out.println("kind="+kind+"\nspeed="+speed+"\ncolor="+color);
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-10
实在看不下去了,标准答案:
class Vehicle
{
private int speed;
private String kind;
private String color;
public void setSpeed(int s)
{
speed=s;
}
public void setColor(String c)
{
color=c;
}

public void setKind(String k)
{
kind=k;
}
public String getKind(){return kind;}
public String getColor(){return color;}
public int getSpeed(){ return speed;}
public static void main(String args[])
{
Vehicle veh=new Vehicle();
veh.setSpeed(100);
veh.setColor("black");
veh.setKind("car");
System.out.println("kind="+veh.getKind()+"\nspeed="+veh.getSpeed()+"\ncolor="+veh.getColor());
}
}
第2个回答  2011-05-08
一看就是个北大青鸟之类的出来的
kind=null的原因是你的类里没有setKind(String kind)方法,同时还要在main方法中调用它
其次你知道在属性前加上static关键字是什么意思吗?他代表该属性是类属性也就是不需要生产该类的实例就能访问的,还有这种类型的属性可以被该类的其它实例修改
第3个回答  2011-05-09
class Vehicle
{
private int speed;
private String kind;
private String color;
public void setSpeed(int s)
{
speed=s;
}
public void setColor(String c)
{
color=c;
}

public void setKind(String k)
{
kind=k;
}
public String getKind(){return kind;}
public String getColor(){return color;}
public int getSpeed(){ return speed;}
public static void main(String args[])
{
Vehicle veh=new Vehicle();
veh.setSpeed(100);
veh.setColor("black");
veh.setKind("car");
System.out.println("kind="+veh.getKind+"\nspeed="+veh.getSpeed+"\ncolor="+veh.getColor);
}
}
相似回答