在我的作业中,我给了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
,默认为{{ 1}}到minTemp
,默认25
到maxTemp
。
如何为75
,name
等设置默认值?
答案 0 :(得分:5)
(我很惊讶地发现搜索结果的第三页而没有找到这个问题的简单版本指出。)
您有两种选择来设置实例变量的默认值(有时称为“实例字段”):
在声明中使用初始化程序。
在构造函数中使用赋值。
假设我有一个班级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
的默认值会根据使用的构造函数而有所不同,或者取决于构造函数接收/接收的参数,在构造函数中设置它是有意义的。
在您的特定情况下,赋值会告诉您使用构造函数。
答案 1 :(得分:0)
如果您要设置默认值,只需在声明变量时指定一个值,如下所示:
private String name = "Pie";
private int calPerServing = 500;
等等。如果要覆盖这些变量,可以。或者,您可以在构造函数中执行此操作:
class Food {
private String name; // name of food
private int calPerServing; //
public Food(){
this.name = "Pie";
this.calPerServing = 500;
}
}