这段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();
}
} 展开
错误描述为: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();
}
} 展开
展开全部
这属于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
这样就没有问题了。
//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
这样就没有问题了。
展开全部
一楼说的不对,public可以来修饰一个成员变量,你这个程序我运行了 没有错误,你再看看是不是你自己加错东西了,对了你是不是写了两个类文件呀,如果不是那就错了,因为一个类里面只能有一个public类,我把你的放在两个类里面运行是可以的 结果如下
speed:100.0 kindcar colorred
passenger:6
speed:50.0 kindcar colorred
passenger:6
speed:100.0 kindcar colorred
passenger:6
speed:50.0 kindcar colorred
passenger:6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Vehicle
把这里类的定义的改成 去掉public
一个.java文件中如果要有public修饰符的类,只能有一个public修饰符的类,
这时文件名必须同public修饰的类名完全相同,但可以一个public修饰符的类都没有。
但是如果这时候存在main方法的话,可以认为它所在的类为文件名!
public类不是必须有,但是有的话就只能有一个!
把这里类的定义的改成 去掉public
一个.java文件中如果要有public修饰符的类,只能有一个public修饰符的类,
这时文件名必须同public修饰的类名完全相同,但可以一个public修饰符的类都没有。
但是如果这时候存在main方法的话,可以认为它所在的类为文件名!
public类不是必须有,但是有的话就只能有一个!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个文件中,只能定义一个public的类
建议一个类一个文件
建议一个类一个文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把public 去掉就行了 你这是个class 不是个属性。明白么? 谢谢您的采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询