Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从参数(JAVA)获取getDiscount()时出现问题_Java_If Statement_Constructor_Getter Setter - Fatal编程技术网

从参数(JAVA)获取getDiscount()时出现问题

从参数(JAVA)获取getDiscount()时出现问题,java,if-statement,constructor,getter-setter,Java,If Statement,Constructor,Getter Setter,我想从扩展person类的employee类的getter中获得折扣。折扣因工作时间而异。我已经设置了参数。 当我使用setMethods时,我可以得到折扣。e、 g如果我使用 e.setHourlyWorked(56); System.out.println(e.getHourlyWorked()); System.out.println(e.getDiscount()); 我得到了预期的结果 但是我不能得到e.get折扣()来自参数本身,即 Employee e= new Empl

我想从扩展person类的employee类的getter中获得折扣。折扣因工作时间而异。我已经设置了参数。 当我使用setMethods时,我可以得到折扣。e、 g如果我使用

e.setHourlyWorked(56);
System.out.println(e.getHourlyWorked());
System.out.println(e.getDiscount());
我得到了预期的结果

但是我不能得到
e.get折扣()来自参数本身,即

    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;
}
}
包装系统;
公共类雇员扩展个人{
私人双小时工作;
私人双倍工资;
私人int dis;
公职人员(){
//默认构造函数
工时=30小时;
工资=34;
}
公共雇员(双工时、双薪、字符串fn、字符串sn、字符串pn){
超级(fn、sn、pn);
this.hourlyWorked=hourlyWorked;
工资=工资;
}
公共双getHourlyWorked(){
返回此。hourlyWorked;
}
公共无效设置工时(双工时){
this.hourlyWorked=hourlyWorked;

如果(this.hourlyWorked20&&this.hourlyWorked使用构造函数分配
hourlyWorked
不会更改折扣。您可以使用
setHourlyWorked
函数替换字段分配

公共雇员(双工时,双薪,字符串fn,字符串sn,字符串pn){
超级(fn、sn、pn);
设置hourlyWorked(hourlyWorked);
工资=工资;
}

如果我必须在
setDiscount()下使用if折扣声明,我该怎么办
?@user13558639如果我了解您的程序,您不需要在该函数中使用
If
语句。使用与
setWage
函数相同的技术。或者,您可以将
If
语句从
setHourlyWorked
移动到
getDiscount
函数。当您想要获得di时Scont,程序会在显示折扣之前重新计算折扣。这样,您可以创建一个
Employee
实例,并在其正下方调用
getDiscount
,然后显示正确的值。