Java 对象可以在构造函数中声明实例变量吗? 我想要这个的原因
这一定是一个愚蠢的问题,但我想知道这个问题,因为有时候当我创建一个特定类的对象时,我并不总是希望该对象拥有所有的实例变量,因为它们不会被使用。这让我想到,如果构造函数是为某些情况创建实例变量的好地方,那么有时候特定类的对象应该有一个额外的实例变量,只有有时候才是。当然,若这是可能的话。在下面的例子中,它将是实例变量Java 对象可以在构造函数中声明实例变量吗? 我想要这个的原因,java,instance-variables,Java,Instance Variables,这一定是一个愚蠢的问题,但我想知道这个问题,因为有时候当我创建一个特定类的对象时,我并不总是希望该对象拥有所有的实例变量,因为它们不会被使用。这让我想到,如果构造函数是为某些情况创建实例变量的好地方,那么有时候特定类的对象应该有一个额外的实例变量,只有有时候才是。当然,若这是可能的话。在下面的例子中,它将是实例变量depth,但在其他情况下,它可能不那么琐碎 例如,在类中,2d项下的深度应与3d项不同,因为2d项没有任何深度: class Box { int width, height, dep
depth
,但在其他情况下,它可能不那么琐碎
例如,在类中,2d项下的深度应与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变量的默认值李>
您已经自己回答了所有问题
int
的值默认为0
,因此它将返回0
根据定义,类是特定实例变量(和函数)的集合。上面的代码没有多大意义;
surfaceearea
代表什么?那么,surfaceearea::getDepth()
意味着什么呢?@OliverCharlesworth我试图用一个类来解释我的特殊问题。我想我最好把它命名为box。编辑:我改成了。另一种方法可能是使用可选的听起来很棒,正是我想要的。我会调查的!这里有一些关于可选类及其用法的很好的解释,然后我还有一个问题要问。在本例中,很明显您可以细分为更具体的子类。但如果这没有意义呢?您是否给该类的每个对象一个很少使用的实例变量?未使用的实例变量有多糟糕?如果创建子类没有意义,那么您的设计就是有缺陷的@您可以创建的Joop。