2012-08-14 6 views
0

는이 내가 방법을 구현하기 위해 노력하고 내 클래스입니다방법에서 배열을 반환하는

actionsClass actionObject = new actionsClass(tipArray, hourArray, 
    hourlyWageInput, gasArray, wageArray, incomeArray, totalHourlyEarnings, 
    totalGas, totalHours, avgGasLabel); 

actionObject.calculateTable(); 

메인 클래스에 (현재 과도한가 선언 된 변수) :

import javax.swing.JButton; 
import javax.swing.JLabel; 
import javax.swing.JTextField; 

public class actionsClass { 

private JLabel hourlyWage, blank, row2, totalTips, totalHours, totalHourlyEarnings, 
totalPay, weekPay, day, totalGas, totalHoursLabel, totalTipsLabel, totalGasLabel, 
totalWageLabel, avgGas, avgGasLabel; 
private JTextField hourlyWageInput; 

private double incomeArray[] = new double[7]; 
private JTextField tipArray[] = new JTextField[7]; 
private JTextField hourArray[] = new JTextField[7]; 
private JTextField gasArray[]= new JTextField[7]; 
private JLabel wageArray[] =new JLabel[7]; 


public actionsClass() { 
} 

public actionsClass(JTextField[] tipArray, JTextField[] hourArray, 
     JTextField hourlyWageInput, JTextField[] gasArray, 
     JLabel[] wageArray, double[] incomeArray, 
     JLabel totalHourlyEarnings, JLabel totalGas, JLabel totalHours, 
     JLabel avgGasLabel) { 
    this.tipArray = tipArray; 
    this.hourArray = hourArray; 
    this.hourlyWageInput = hourlyWageInput; 
    this.gasArray = gasArray; 
    this.wageArray = wageArray; 
    this.incomeArray = incomeArray; 
    this.totalHourlyEarnings = totalHourlyEarnings; 
    this.totalGas = totalGas; 
    this.totalHours = totalHours; 
    this.avgGasLabel = avgGasLabel; 
} 

public String calculateTable(){ 
    for (int i = 0; i < 7; i++) { 
     double tipx = Double.parseDouble(tipArray[i].getText()); 
     double houry = Double.parseDouble(hourArray[i].getText()); 
     double hourlyz = Double.parseDouble(hourlyWageInput.getText()); 

     String[] wageArrayStrings = null; 

     if (houry != 0){ 
      wageArrayStrings[i] = String.format("%.2f", (hourlyz*houry+tipx)/houry); 

     } 
     else { 
      wageArrayStrings[i] = ("$ 0.00"); 
     } 

    } 
    return wageArrayStrings[]; 
} 

}

return wageArrayStrings [];에 구문 오류가 있습니다. 괄호의 유무와 상관없이 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

2

먼저 반환 유형은 String[]이어야합니다.

이 그럼 당신은 (@MattBall 루프 전에, 지적으로) 배열을 초기화해야합니다

다음
String[] wageArrayStrings = new String[7]; 
for (int i = 0; i < 7; i++) { 

당신이

return wageArrayStrings; 
+3

N.B. 배열은 루프 외부에서 선언되고 초기화되어야합니다. –

+0

이것이 내 주요 문제였습니다. 둘 다 감사합니다! –

0

단지 wageArrayStrings을 반환해야합니다. 대괄호와 반환 유형은 이어야하며 String (문자열 배열을 반환한다고 가정)이 필요합니다.

0

그것은 단순히해야 할 수 있습니다 (변경 함수 반환 유형 너무) -

public String[] calculateTable() { 

    //// your code. 
    return wageArrayStrings; 
} 

또한 배열을 초기화하지 않았습니다. for 루프 전에 그렇게해야합니다.

관련 문제