这段程序哪错了?为什么编译的时候显示main函数错了

;class VolcanoRobot {
; String status;
; int speed;
; int power;
; VolcanoRobot(String int1,int int2,int int3) {
; status = int1;
; speed = int2;
; power = int3;
; }
; public static void main(String[] arguments) {
; VolcanoRobot vic = new VolcanoRobot("exploring",5,200);
; System.out.println("status: " + int1);
; System.out.println("speed: " + int2);
; System.out.println("power: " + int3);
; }
;}

你的main函数没有定义变量 int1 int2 int3追问

怎么定义?那个在定义新的对象的时候不是付初值了吗

追答

VolcanoRobot构造器里面的int1int2 int3生命周期到方法结束就结束了,这三个变量对main方法是不可见的,所以你改成

; System.out.println("status: " + status);
; System.out.println("speed: " + speed);
; System.out.println("power: " + power);
应该就好了

追问

我以前也这样弄得,可是不对

追答

这是因为
VolcanoRobot vic = new VolcanoRobot("exploring",5,200);这句话调用构造函数创建vic对象,status等三个变量是vic的field,只对vic这个对象可见
所以这么写:
; System.out.println("status: " + vic.status);
; System.out.println("speed: " + vic.speed);
; System.out.println("power: " + vic.power);
就可以了

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜