2013-04-25 19 views
1

我有經過hourshourlyWage參數構造函數的類Paycheck難度。問題如下:問題傳遞到arguements構造不同的公共類

symbol: variable hours 
location : class Paycheck 

它重複公共類片酬小時或小時工資的每個實例。

的代碼如下

import java.util.Scanner; 

public class PayDayCalculator { 

    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 
     System.out.println("Hourly wage: "); 
     double hourlyWage = in.nextDouble(); 
     System.out.println("Hours worked: "); 
     double hours = in.nextDouble(); 

     Paycheck paycheck = new Paycheck(hourlyWage, hours); 
     System.out.println("Pay: " + paycheck.getPay()); 
    } 
} 

public class Paycheck { 
    private double pay = 0; 
    private double overtime = 0; 
    private double overtimePay = 0; 

    /*double hours; 
    double hourlyWage; */ 
    Paycheck(double hourlyWage, double hours) { 
     setPay(0); 
    } 

    public void setPay(double newPay) { 
     if (hours > 40) { 
      overtime = hours % 40; 
      hours = hours - overtime; 
     } 
     overtimePay = hourlyWage * 1.5; 
     pay = (hours * pay) + (overtime * overtimePay); 
    } 

    public double getPay() { 
     return pay; 
    } 
} 
+0

什麼是你的錯誤? – CodeBlue 2013-04-25 17:19:48

+0

有什麼樣的困難?如果您發佈錯誤和/或堆棧跟蹤會很有幫助。 – 2013-04-25 17:20:09

+2

爲什麼'setPay(0);'?你的工資總是零不? – ChiefTwoPencils 2013-04-25 17:20:29

回答

0

setPay方法指的是hourshourlyWage,這是在傳遞給構造函數的參數,使他們當地唯一的構造函數。它們不適用於班級中的所有方法。如果您希望所有方法都可以訪問它們,則需要在課程級別取消註釋。

double hours; 
double hourlyWage; 

Paycheck(double hourlyWage, double hours) { 
    this.hourlyWage = hourlyWage; 
    this.hours = hours; 
    setPay(0); 
} 
+0

非常感謝。這工作! – Tristinia 2013-04-25 17:34:03

1

註釋掉成員變量hours

/*double hours; 
double hourlyWage; */ 

,但還是儘量引用它,比如:

if (hours > 40) { 
    overtime = hours%40; 
    hours = hours - overtime; 
} 

如果你需要這個變量 - 取消其註釋。

0

hourshourlyWage沒有定義!

取消註釋這部分 -

/*double hours; 
double hourlyWage; */ 
相關問題