这一定是一个愚蠢的问题,但我想知道这个问题,因为有时当我创建一个特定类的对象时,我并不总是希望该对象拥有所有的实例变量,因为它们不会被使用。这让我想一想,如果构造函数可以成为为这些情况创建实例变量的好地方,有时某个特定类的对象应该只有一个额外的实例变量 。如果那是可能的话。在下面的情况下,它将是实例变量depth
,但在其他情况下,它可能不那么重要。
例如,在2d项下面的类应该与depth
实例变量的3d项不同,因为2d项没有任何深度:
class Box {
int width, height, depth, surface;
public Box(int width, int height) { //2d box
this.width = width;
this.height = height;
surface = width*height;
}
public Box(int width, int height, int depth) { //3d box
this.width = width;
this.height = height;
this.depth = depth;
surface = width*height*depth;
}
public getDepth() {
return this.depth;
}
}
0
对吗?实例类型int变量的默认值。 答案 0 :(得分:1)
您已经自己回答了所有问题。
使用包含高度和宽度的基类,如Shape。然后2DShape和3DShape扩展Shape类并定义自己的实例变量。 Shape类也可以使用抽象方法来定义区域,体积等。
不,你做不到。
是的,由于int
的值默认为0
,因此会返回0
。