这段java程序为什么会发生错误?怎么解决呢?

程序如下,标有“*”的语句中的“Car”发现错误,错误描述为:Multiplemarkersatthisline:-thepublictypeCarmustbedefin... 程序如下,标有“*”的语句中的“Car”发现错误,
错误描述为:Multiple markers at this line:
-the public type Car must be defined in its own file;
-the type Car is already defined.
================================================
public class Vehicle {
public double speed;
public String kind;
public String color;
public void setSpeed(double sp)
{
speed=sp;
}
public void setKind(String k)
{
kind=k;
}
public void setColor(String c)
{
color=c;
}
public void print_c()
{
System.out.println("speed:"+speed+" kind"+kind+" color"+color);
}
}
*public class Car extends Vehicle
{
protected int passenger;
public Car(double sp,String k,String c,int p)
{
setSpeed(sp);
setKind(k);
setColor(c);
passenger=p;
}
public void print_v()
{
print_c();
System.out.println("passenger:"+passenger);
}
public static void main(String arg[])
{
Car c;
c=new Car(100.00,"car","red",6);
c.print_v();
c.setSpeed(50.0);
c.color="red";
c.kind="car";
c.print_v();
}

}
展开
 我来答
ymiqplgao
2011-05-18 · TA获得超过646个赞
知道小有建树答主
回答量:512
采纳率:0%
帮助的人:395万
展开全部
这属于Java命名的强制性规定,文件名必须和里面的public 类名称一致。因为你已民经有了一个public class Vehicle 所以不允许再有public的类出现 ,*public 把这个删掉,但是我想这不是你要的结果,所以我建议写两个文件。
//Vehicle.java

package test;

public class Vehicle {
public double speed;
public String kind;
public String color;

public void setSpeed(double sp) {
speed = sp;
}

public void setKind(String k) {
kind = k;
}

public void setColor(String c) {
color = c;
}

public void print_c() {
System.out.println("speed:" + speed + " kind" + kind + " color"
+ color);
}
}
//Car.java
package test;

public class Car extends Vehicle {
protected int passenger;

public Car(double sp, String k, String c, int p) {
setSpeed(sp);
setKind(k);
setColor(c);
passenger = p;
}

public void print_v() {
print_c();
System.out.println("passenger:" + passenger);
}

public static void main(String arg[]) {
Car c;
c = new Car(100.00, "car", "red", 6);
c.print_v();
c.setSpeed(50.0);
c.color = "red";
c.kind = "car";
c.print_v();
}

}

//end
这样就没有问题了。
s3938931
2011-05-18 · TA获得超过871个赞
知道小有建树答主
回答量:577
采纳率:100%
帮助的人:176万
展开全部
一楼说的不对,public可以来修饰一个成员变量,你这个程序我运行了 没有错误,你再看看是不是你自己加错东西了,对了你是不是写了两个类文件呀,如果不是那就错了,因为一个类里面只能有一个public类,我把你的放在两个类里面运行是可以的 结果如下
speed:100.0 kindcar colorred
passenger:6
speed:50.0 kindcar colorred
passenger:6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tabuaiwo888
2011-05-18 · TA获得超过116个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:109万
展开全部
public class Vehicle

把这里类的定义的改成 去掉public

一个.java文件中如果要有public修饰符的类,只能有一个public修饰符的类,
这时文件名必须同public修饰的类名完全相同,但可以一个public修饰符的类都没有。
但是如果这时候存在main方法的话,可以认为它所在的类为文件名!

public类不是必须有,但是有的话就只能有一个!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
佐助boy
2011-05-18 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:157万
展开全部
一个文件中,只能定义一个public的类
建议一个类一个文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lutao6941957
2011-05-18 · TA获得超过215个赞
知道答主
回答量:83
采纳率:100%
帮助的人:87.9万
展开全部
把public 去掉就行了 你这是个class 不是个属性。明白么? 谢谢您的采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式