这是我的主要节目。我在这里试图实现的是,对于每一个"HeadPhones“设置有一个随机生成的颜色和制造商。目前,当程序运行时,除了我预置的内容外,所有变量都得到相同的结果。
package testheadphones;
import java.util.Random;
public class TestHeadPhones {
public static void main(String[] args) {
String[] manufacturers = {"Skullcandy", "Klipsch", "Grado", "Shure",
"Bose", "Beats", "Sony"};
String[] colors = {"blue", "black", "green", "red", "purple", "pink",
"white", "orange", "yellow"};
Random random = new Random();
int randColor = random.nextInt(2);
String color = colors[randColor];
int randMan = random.nextInt(2);
String manufacturer = manufacturers[randMan];
//Build three headphone sets.
//Each set is encased in "{}" just for organization
HeadPhones set1 = new HeadPhones();{
set1.setIsPluggedIn(true);
set1.getManufacturer();
set1.setManufacturer(manufacturer);
set1.getVolume();
set1.setVolume(2);
set1.getColor();
set1.setColor(color);
}
HeadPhones set2 = new HeadPhones();{
set2.setIsPluggedIn(true);
set2.getManufacturer();
set2.setManufacturer(manufacturer);
set2.getVolume();
set2.setVolume(1);
set2.getColor();
set2.setColor(color);
}
HeadPhones set3 = new HeadPhones();{
set3.setIsPluggedIn(true);
set3.getManufacturer();
set3.setManufacturer(manufacturer);
set3.getVolume();
set3.setVolume(3);
set3.getColor();
set3.setColor(color);
}
System.out.println(set1.toString());
System.out.println();
System.out.println(set2.toString());
System.out.println();
System.out.println(set3.toString());
}
}这是我的班级档案。
package testheadphones;
import java.util.Random;
public class HeadPhones {
//Constant Declarations
public static final int LOW = 1;
public static final int MEDIUM = 2;
public static final int HIGH = 3;
//Private Declarations
private int volume = MEDIUM;
private boolean pluggedIn = false;
private String manufacturer = null;
private String color = null;
Random random = new Random();
//Default Constructor
public void HeadPhones (int volume, String manufacturer, String Color){
pluggedIn = false;
manufacturer = "Sony";
color = "red";
volume = MEDIUM;
}
//Getter and Setter
public int getVolume(){
return volume;
}
public void setVolume(int volume){
this.volume = volume;
}
public String getManufacturer(){
return manufacturer;
}
public void setManufacturer(String manufacturer){
this.manufacturer = manufacturer;
}
public boolean getIsPluggedIn(){
return pluggedIn;
}
public void setIsPluggedIn(boolean pluggedIn){
this.pluggedIn = pluggedIn;
}
public String getColor(){
return color;
}
public void setColor(String color){
this.color = color;
}
public String toString(){
String plugIn = this.pluggedIn == true ? "plugged in. " : "not plugged"
+ " in. ";
String earBuds = "Your headphones are " + plugIn + "They are: " +
this.color + " " + this.manufacturer + " and are turned up to "
+ this.volume;
return earBuds;
}
}发布于 2015-04-26 15:46:20
因为问题还不清楚,我会试着理解你想要什么。
我想要在整个数组中找到一个随机元素,而不仅仅是两个第一个元素:random.nextInt(colors.length);和random.nextInt(manufacturers.length);,而不是random.nextInt(colors.length);。
您创建一个整数,并使用它的3个耳机。你可能想为每个耳机选择一个新的颜色和一个新的制造商。然后将setX.setManufacturer(manufacturer);和setX.setColor(color);替换为:
setX.setManufacturer(manufacturers[random.nextInt(manufacturers.length)]);
setX.setColor(colors[random.nextInt(colors.length)]);发布于 2015-04-26 15:44:19
可能有一个错误,我可以看到您是generating random number between 0 (inclusive) and the specified value i.e 2(exclusive),即只有两个值是generated 1 and 0。您需要在更多范围之间生成它。
解决这个问题
Random random = new Random();
int randColor = random.nextInt(manufacturers.length);
String color = colors[randColor];
int randMan = random.nextInt(colors.length);发布于 2015-04-26 15:46:32
当你说
int randMan = random.nextInt(2)你说的是随机类,它在0到1之间生成一个随机的int (2除外)。可能您想要做的是在0和
manufacturers.length颜色也是如此。所以你需要的是:
int randColor = random.nextInt(colors.length);
int randMan = random.nextInt(manufacturers.length);https://stackoverflow.com/questions/29879677
复制相似问题