2013-07-18 32 views
0

我正在處理的問題是,我無法弄清楚如何讓我的課堂中出現某些值,他們只返回爲零。我是一個初學者,所以我對Java不太瞭解,但是我必須讓4個班級或3個類型的員工和一個班級輸出他們的價值觀。但我無法獲得佣金和工會僱傭的價值。下面是代碼:Java:ClassProblem。 Java新手

import java.util.Scanner; 

// Base or Superclass 
class Employee 
{ 
    String name; 
    String department; 
    double pay; 
    double hours; 
    double money; 
    double mission; 
    double rate; 
    double withheld; 
    double moneyc; 
    double moneyu; 
    double sales; 

    public void inputs() 
    { 
     Scanner in = new Scanner(System.in); 

     System.out.println("Enter your name: "); 
     name = in.nextLine(); 

     System.out.println("Enter your department: "); 
     department = in.nextLine(); 

     System.out.println("Enter your pay per hour: "); 
     pay = in.nextDouble(); 

     System.out.println("Enter how many hours you worked: "); 
     hours = in.nextDouble(); 

     System.out.println("Enter your rate of commission(0.00): "); 
     rate = in.nextDouble(); 

     System.out.println("Enter your withheld amount: "); 
     withheld = in.nextDouble(); 

     System.out.println("Enter your sales amount: "); 
     sales = in.nextDouble(); 

     money = pay * hours; 
    } 

    // Accessor Methods 
    public String getName() 
    { 
     return this.name; 
    } 

    public String getDepartment() 
    { 
     return this.department; 
    } 

    public Double getPay() 
    { 
     return this.pay; 
    } 

    public Double getHours() 
    { 
     return this.hours; 
    } 

    public Double getMoney() 
    { 
     return this.money; 
    } 

    public Double getMission() 
    { 
     return this.mission; 
    } 

    public Double getRate() 
    { 
     return this.rate; 
    } 

    public Double getWithheld() 
    { 
     return this.withheld; 
    } 

    public Double getMoneyc() 
    { 
     return this.moneyc; 
    } 

    public Double getMoneyu() 
    { 
     return this.moneyu; 
    } 

    public Double getSales() 
    { 
     return this.sales; 
    } 

    // Mutator Methods 
    public void setName(String n) 
    { 
     name = n; 
    } 

    public void setDepartment(String d) 
    { 
     department = d; 
    } 

    public void setPay(double p) 
    { 
     pay = p; 
    } 

    public void setHours(double h) 
    { 
     hours = h; 
    } 

    public void setMoney(double m) 
    { 
     money = m; 
    } 

    public void setMission(double mi) 
    { 
     mission = mi; 
    } 

    public void setRate(double r) 
    { 
     rate = r; 
    } 

    public void setWithheld(double w) 
    { 
     withheld = w; 
    } 

    public void setMoneyc(double mc) 
    { 
     moneyc = mc; 
    } 

    public void setMoneyu(double mu) 
    { 
     moneyu = mu; 
    } 

    public void setSales(double s) 
    { 
     sales = s; 
    } 
} 

class Last extends Employee 
{ 
    public void dinero() 
    { 
     Employee one = new Employee(); 

     one.inputs(); 

     // Union Employee 
     UnionEmployee three = new UnionEmployee(); 
     three.Syndicate(); 

     // Commission Employee 
     Commissioned two = new Commissioned(); 
     two.sales(); 

     System.out.println("\n"+ "Name: "+ one.getName()); 
     System.out.println("Department: "+ one.getDepartment()); 
     System.out.println("Hours: "+ one.getHours()); 
     System.out.println("Pay Rate: "+ one.getPay()); 
     System.out.println("Your money is: "+ one.getMoney()); 

     // Commissioned Employee 
     System.out.println("\n"+ "Commissioned Employee"); 
     System.out.println("Your money is: "+ one.getMoneyc()); 
     System.out.println("Your commission is: "+ one.getMission()); 
     System.out.println("Your rate: "+ one.getRate()); 

     // Union employee 
     System.out.println("\n"+"Union Employee"); 
     System.out.println("Your money is: "+ one.getMoneyu()); 
     System.out.println("Your withheld is: "+ one.getWithheld()); 
    } 
} 

// Derived or Subclass 
class Commissioned extends Employee 
{ 
    public void sales() 
    { 
     moneyc = hours * pay; 
     // Commission 
     mission = sales * rate; 
    } 
} 

// Derived or Subclass 
class UnionEmployee extends Employee 
{ 
    public void Syndicate() 
    { 
     if (hours <= 40) { 
      moneyu = (hours * pay) - withheld; 
     } else { 
      moneyu = (pay * hours * ((hours - 40) * 1.5)) - withheld; 
     } 
    } 
} 

public class WeiTry extends Last 
{ 
    public static void main(String[] args) 
    { 
     // Output 
     Last show = new Last(); 
     show.dinero(); 
    } 
} 
+0

爲什麼恰好是'javascript'標記在這個?你確實意識到'javascript'與'java'無關。 – Shawn31313

+2

關閉JS列表。 –

+0

哦,對不起,我之前發佈我是一個Java新手。實際上我只學了一週半的時間學習Java。 – PrimeRC

回答

1

我看到你的Employee只有一個地方的字段將會設置一個叫做方法內部inputs()

one的價值得到填充,因爲你調用inputs方法上one但您的其他員工類型,例如您的UnionEmployee three,inputs從未被調用過,並且他們的字段永遠不會被設置。

如果您希望設置其他員工的值,則看起來您必須調用其輸入法。

UnionEmployee three = new UnionEmployee(); 
three.inputs(); 
three.Syndicate(); 

或者你可以將其複製過來

three.setName(one.getName()); 
+0

是的,這可能是爲什麼我爲某些輸出獲得零,所以我怎麼能夠得到填充變量?或者我必須在其他課程中調用該方法? – PrimeRC

+0

@RogelioLoop調用他們的'輸入'方法 –

+0

這裏是輸出圖像鏈接:http://i756.photobucket.com/albums/xx207/ChaosOrochi/Java_Problem_zps7c9dc5b4.jpg – PrimeRC