从参数(JAVA)中获取getDiscount()有问题。

问题描述 投票:0回答:1

我想得到 折扣 来自 getter. 折扣根据工作小时数不同而不同。我已经设置了参数,当我使用setMethods时,我可以得到折扣,例如,如果我使用了

e.setHourlyWorked(56);
System.out.println(e.getHourlyWorked());
System.out.println(e.getDiscount());

我得到了预期的结果。

但我不能得到 e.getDiscount()); 从参数本身,即

    Employee e= new Employee(23, 22,"Nab","Kar","000");
    System.out.println(e.getHourlyWorked());
    System.out.println(e.getDiscount());

我得到0作为折扣。

人物类

    public  class Person {
    //private fields
    private String firstName;
    private String surname;
    private String phoneNumber;
    private int discount;

    public Person(){
    //Default Constructors
    firstName="John";
    surname="SMITH";
    phoneNumber="0000";


    }//constructors with all the inputs 
    public Person(String fn, String sn, String pn){

        firstName=fn;
        surname=sn;
        phoneNumber=pn;
    }

    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String fn) {
        firstName=fn;
    }


    public String getSurname() {
        return surname;
    }

    public void setSurname(String sn) {
        surname = sn;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String pn) {
        phoneNumber = pn;
    }


    @Override
    public String toString(){
        return getFirstName()+" "+getSurname()+" "+getPhoneNumber();
    }

雇员等级

    package lollyShopSystem;

    public class Employee extends Person {
    private double hourlyWorked;
    private double wage;
    private int dis;

    public Employee(){
    //Default Constructors
    hourlyWorked=30;
    wage=34;

    }
    public Employee(double hourlyWorked, double wage, String fn, String sn, String pn) {
        super(fn, sn, pn);
        this.hourlyWorked = hourlyWorked;
        this.wage = wage;        
    }

    public double getHourlyWorked() {
        return this.hourlyWorked;

    }

    public void setHourlyWorked(double hourlyWorked) {
        this.hourlyWorked = hourlyWorked;

        if (this.hourlyWorked<=20){
            this.dis=5;
    }
        else if (this.hourlyWorked>20 && this.hourlyWorked<=30){
            this.dis=10;
    }
        else {
            this.dis=15;
        }

    }

    public double getWage() {
        return this.wage;
    }

    public void setWage(double wage) {
        this.wage = wage;


    }


public int getDiscount(){
    return this.dis;
}
}
java if-statement constructor getter-setter
1个回答
1
投票

赋值 hourlyWorked 使用构造函数不会改变折扣。您可以用 setHourlyWorked 函数代替。

public Employee(double hourlyWorked, double wage, String fn, String sn, String pn) {
    super(fn, sn, pn);
    setHourlyWorked(hourlyWorked);
    this.wage = wage;        
}
© www.soinside.com 2019 - 2024. All rights reserved.