2013-07-18 4 views
0

Проблема, с которой я имею дело, заключается в том, что я не могу понять, как сделать определенные значения в моем классе, которые они возвращают только как нули. Я новичок, поэтому я мало разбираюсь в Java, но я должен сделать 4 класса или 3 типа сотрудников и один класс для вывода их значений. Но я не могу получить ценности для работы комиссии и профсоюза. Вот код:Java: ClassProblem. Java Novice

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 «поля s получить набор находится внутри метода, называемого inputs()

one» s значения получают заселены, потому что вы вызываете метод inputs на one но ваши другие типы сотрудников, такие как ваши UnionEmployee three, inputs, никогда не звонят, и их поля никогда не будут установлены.

Если вы хотите, чтобы значения вашего другого сотрудника были установлены, похоже, вам придется называть их метод ввода.

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

или вы можете просто скопировать их над

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

Да, возможно, поэтому я получаю нули для определенных выходов, так как я могу получить, чтобы заполнить переменные? Или мне нужно просто вызвать метод в другом классе? – PrimeRC

+0

@RogelioLoop называет их метод 'input' –

+0

Вот ссылка на выходное изображение: http://i756.photobucket.com/albums/xx207/ChaosOrochi/Java_Problem_zps7c9dc5b4.jpg – PrimeRC

Смежные вопросы