【发布时间】:2020-06-16 16:28:53
【问题描述】:
我需要playGuitar 方法来返回一个包含 16 个随机持续时间的随机音符的字符串表示形式。输出应如下所示:A(2), G(3), B(0.5), C(1), C(1), D(0.25), …]。
另外,如何让 Color 数据字段在我的 Guitar Constructor 中显示为 blue 或 red 而不是 RGB 值?
我不想使用数组。
import java.awt.Color;
import java.util.Random;
public class Guitar {
private int numStrings = 6;
private double guitarLength = 28.2;
private String guitarManufacturer = "Gibson";
private Color guitarColor = Color.red;
Guitar(){
int numStrings = 6;
double guitarLength = 28.2;
String guitarManufacturer = "Gibson";
Color guitarColor = Color.red;
}
Guitar(int specStrings, double specLength, String specManufacturer, Color specColor){
numStrings = specStrings;
guitarLength = specLength;
guitarManufacturer = specManufacturer;
guitarColor = specColor;
//String s1 = Color.toString(specColor);
}
public String playGuitar(String str3){
Random rnd = new Random();
for (int iCount = 0; iCount<16 ; iCount++){
char a = (char) (rnd.nextInt(7) + 'A');
double b = (double) (rnd.nextInt(5)+1);
String str1 = Double.toString(b);
String str2 = Character.toString(a);
//System.out.println(a);
//System.out.println(str1);
str3 = str2+"("+str1+")";
continue;
//System.out.println(str2+"("+str1+")");
//System.out.println(str3);
//String str4 = String.toString(str3);
//System.out.println(str4);
}
return str3;
}
public String toString(){
return numStrings+" "+guitarLength+" "+guitarManufacturer+" "+guitarColor;
}
public int getNumStrings (){
return numStrings;
}
public double getGuitarLength(){
return guitarLength;
}
public String getGuitarManufacturer(){
return guitarManufacturer;
}
public Color getGuitarColor(){
return guitarColor;
}
}
【问题讨论】: