//这是我的第一堂课。用于设置构造函数和mutator方法。
public int setColor(int setColor) //Mutator
{
colorCode = setColor;
return setColor;
}
public String setColorOfAuto(String toString)
{
if (colorCode == 1);
{
toString = ("Red");
return toString;
}
}
我的问题是。我如何获得用户输入,作为整数,(1,2,3,4)转换为字符串(1表示红色,2表示蓝色,3表示白色,4表示黑色)。 这些对象已经被声明和初始化,但由于编程的重量超重,我选择不添加该部分。此外,这使它看起来更干净,希望更容易导航。仅限于使用mutator和accessor方法。
感谢。
答案 0 :(得分:0)
您可以使用枚举来映射整数和字符串,例如下面的
public enum Color {
RED(1), BLACK(2), WHITE(3);
private int value;
private Color(int value) {
this.value = value;
}
}
public static void main(String[] args) {
for (Color col : Color.values()) {
System.out.println("Color Value: " + col.value + " - Color Name: " + col);
}
}
答案 1 :(得分:0)
这就是枚举的用途。枚举是集合中所有项目的完整有序列表。
因此,在您的示例中,您可以将Color
定义为枚举类型:
enum Color {
RED(1),
BLUE(2),
WHITE(3),
BLACK(4);
}
如果要打印出已被实例化为红色的Color
实例,它将如下所示:RED
。
如果您希望他们说出其他内容,您甚至可以为每个人提供自定义说明:
enum Color {
RED(1),
BLUE(2),
WHITE(3),
BLACK(4);
private final String description;
Color(int value) {
switch(value) {
case 1:
description = "The color of blood.";
break;
case 2:
description = "As blue as the ocean.";
break;
//etc...
}
}
@Override
public String toString() {
return description;
}
}
如果你坚持拥有Color
课程(你不应该这样做 - 没有理由为了这么简单的目的而包括课程的所有开销):
class Color {
int value;
String description;
Color(int value) {
this.value = value;
setColor(value);
}
private setColor(int value) {
switch (value) {
case 1:
this.description = "Red";
break;
case 2:
this.description = "Blue";
break;
//Etc...
}
}
public setValue(int value) {
this.value = value;
description = setColor(value);
}
@Override
public String toString() {
return description;
}
}
编辑:
对于完全用例:
您想从某个Scanner
对象中提取一个数字,使用它来实例化Color类或枚举,然后取值。
出于本示例的目的,我将假设您拥有上面的Color
类。您必须完成该类内部的switch语句才能使其正常工作。
//Within main
Scanner stdin = new Scanner(System.in);
// Print user prompts
// ...
int colorSelection = stdin.nextInt();
Color c = new Color(colorSelection);
// Print the color
System.out.println(c);
如果要在ALL-CAPS
中打印颜色,可以使用上面相同的代码,但我在答案中列出的第一个枚举代替Color
类。如果需要自定义描述符,请使用第二个枚举并完成switch
语句。