为什么类框的对象变量不会被另一个类覆盖?

时间:2014-11-01 18:25:12

标签: java class overwrite

public class Box{

    public int length,width,height;
    public int volume;
    Box(int i, int j, int k){
        this.length=i;
        this.width=j;
        this.height=k;
    }
    void setvolume(int i){
        this.volume=i;
    }
    int getvolume(){
        return volume;
    }
}
class BigBox{

    Box B1=new Box(20,30,40);
    B1.length=30;

}

我创建了一个类Box和另一个类BigBox,它将类Box的对象的长度变量覆盖为30.但是当我编写代码B1.length = 30来覆盖它时,它显示错误我无法了解。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:3)

你需要在代码块中放置这样的赋值,通常是方法或初始化块。

class BigBox{
   public void someMethod() {
    Box B1=new Box(20,30,40);
    B1.length=30;
   }
}

如果你真的想要初始化一个实例变量,那么这将起作用:

class BigBox{
    Box B1=new Box(20,30,40); 
    {
       B1.length=30;
    }
}

答案 1 :(得分:0)

你必须在方法中声明你的对象或在块中初始化...