2017-01-30 24 views
0

我想分配一个随机数到一个对象数组,我试图将它分配给一个名为score的变量。我的主要类代码如下:分配随机数到对象数组

import java.util.Random; 

public class App { 

public static void main(String[] args) { 

    Bands[] bands = new Bands[5];   
    bands[0] = new Bands("Joe", "Rick", "Nick", "Dalton", "Doylestown, PA", "RockOn", 4000.50 , "Rock"); 
    bands[1] = new Bands("Luke", "Bill", "Ian", "Matt", "State College, PA", "Blink182", 3500.50 , "Alternative"); 
    bands[2] = new Bands("Corey", "Noah", "Jon", "Kaleb", "Philadelphia, PA", "Rise Against", 10000.50 , "Rock"); 
    bands[3] = new Bands("Jake", "Joey", "Mike", "Mac", "New York, NY", "Thousand Foot Krutch", 2000.50 , "Rock"); 
    bands[4] = new Bands("Bob", "Jeff", "Dom", "Mark", "King of Prussia, PA", "Skillet", 5500.50 , "Rock"); 

    int score = compete(score);   
}  
} 

然后我的乐队班级代码位于下方。我无法得到它的正常工作:

import java.util.Random; 

public class Bands { 

private String singerName; 
private String guitarName; 
private String bassistName; 
private String drummerName; 
private String Hometown; 
private String bandName; 
private double income; 
private String genre; 
private int score; 

public Bands(String singerName, String guitarName, String bassistName, String drummerName, String Hometown, String bandName, double income, String genre) 
{ 
    this.singerName = singerName; 
    this.guitarName = guitarName; 
    this.bassistName = bassistName; 
    this.drummerName = drummerName; 
    this.bandName = bandName; 
    this.Hometown = Hometown; 
    this.income = income; 
    this.genre = genre; 
    this.score = -1; 
} 

public int compete() 
{  
    Random rand = new Random(); 
    this.score = rand.nextInt(20); 

    return score; 
} 

public String getInfo() 
{ 
    String bandInfo = "Band: " + this.bandName + ", Singer: " + this.singerName + ", Guitarist: " + this.guitarName + ", Bassist: " + this.bassistName + 
         ", Drummer: " + this.drummerName + ", Hometown: " + this.Hometown + ", Income: " + this.income + ", Genre: " + 
         this.genre + ", Final Score: " + this.score; 

    return bandInfo; 
} 
+2

您有什么问题? – alayor

+0

这个代码编译? – nullpointer

+1

'我无法正常工作:'你会得到什么错误?你需要清楚地描述你的问题 – Yousaf

回答

0

你的类Bands有法竞争是不带任何参数,并在main方法你调用有得分的方法高下:

int score = compete(score); 

所以我假设你要调用存在于您的竞争方法在另一类因此要解决这个问题哟应该:

  1. 在带类,创建您的属性得分的二传手
  2. 创建一个新的乐队对象:
  3. 将比分
  4. 打电话给你的竞争方法
 
    Bands b = new Bands(); 
    b.setScore(score); 
    int score = b.compete(); 

或者

变化的竞争法采取的属性得分

public int compete(int score){  
    Random rand = new Random(); 
    this.score = rand.nextInt(20); 
    return score; 
} 
0

问题是代码的“整数分数”行

public int compete() 

compete函数需要任何参数,但你传递参数在这个功能

int score = compete(score); 

你也不能声明var可用score并将其作为参数传递给一行中的函数。