如何设置实例变量的默认值?
在我的任务,我给一个Food
类是这样的:如何设置实例变量的默认值?
class Food { private String name; // name of food private int calPerServing; // calories per serving // must be >= 0 // min storage temperature // must be >= 0. // max storage temperature // must be <= 100. private float minTemp; private float maxTemp; int getCalories() { return calPerServing; } }
,我有与分配的这部分故障:
写构造方法对于
Food
类,设置默认name
至"Pie"
,默认calPerServing
至500
,默认minTemp
至25
和默认maxTemp
到75
。
如何设置name
,calPerServing
等的默认值?
private String name = "Pie";
private int calPerServing = 500;
,所以它:
(我很惊讶去三个搜索结果页面没有找到这个问题的简单版本指向。)
您有设置一个实例变量的缺省值两种选择(有时称为“实例字段”):
使用I关于申报的硝化剂。
在构造函数中使用赋值。
说我有一个类Example
和实例变量answer
其默认应该42.我可以:
// Example of #1 (initializer)
class Example {
private int answer = 42;
// ...
}
或
// Example of #2 (assignment within constructor)
class Example {
private int answer;
Example() {
this.answer = 42;
}
}
初始值设定处理(#1)在构造函数中的任何其他逻辑之前(但在调用超类构造函数之后)构造期间。
您使用哪一种取决于班级以及某种程度上的个人风格。如果这个类将有多个构造函数,但我希望answer
默认为42,而不管使用哪个构造函数,使用初始化是有意义的,因为然后我只把它放在一个地方而不是放在每个构造函数中。如果answer
的默认值根据使用哪个构造函数而不同,或者取决于构造函数接收/接收的参数,则在构造函数中设置它是有意义的。
在您的具体情况下,分配会告诉您使用构造函数。
有时最简单的问题没有答案。我发现自己处于同样的状况。大声笑... – BlackHatSamurai
如果要设置默认值,只需在声明变量像这样分配一个值。如果你想覆盖这些变量,你可以。另外,您也可以做到这一点在构造函数中,像这样:
class Food {
private String name; // name of food
private int calPerServing; //
public Food(){
this.name = "Pie";
this.calPerServing = 500;
}
}
只需尝试一些代码,如果您失败,请在此处查询体验。 –