java - 如何在 java 中的 setter 方法中执行计算?
问题描述
我在一个 java 项目中有两个类,一个是 Employee1 类,另一个是 info 类。在 Employee 1 类中,我有以下代码:
public class Employee1 {
String employeeName;
int hoursWorked;
double rateOfPay;
double wages;
public Employee1(String name, int hours, double pay) {
employeeName=name;
hoursWorked=hours;
rateOfPay=pay;
}
public String getName() {
return employeeName;
}
public void setName(String xName) {
employeeName = xName;
}
public double getHours() {
return hoursWorked;
}
public void setHours(int xHours) {
hoursWorked = xHours;
}
public double getPay() {
return rateOfPay;
}
public void setPay(double xPay) {
rateOfPay = xPay;
}
public double calculateWages () {
wages= hoursWorked * rateOfPay;
return wages;
}
public void print() {
System.out.println("name:"+ employeeName);
System.out.println("hours " + hoursWorked);
System.out.println("Wages Earned"+ wages);
}
}
在我的信息类中,我有以下代码:
public class Info {
public static void main(String[] args) {
Employee1 x= new Employee1("Sarah",40,7.25);
Employee1 y=new Employee1("Bob",30,8.00);
Employee1 z= new Employee1("Todd",26, 8.25);
x.print();
}
}
我现在的问题是我正在尝试在我的 Employee1 类中创建工资计算,正如您使用我的 calculateWages 方法所看到的那样。但是,每当我为现有员工 x 调用 print 方法时,工资总是为 0.0,我不确定为什么会发生这种情况。我的每个 Employee1 对象都有预先存在的变量,我仍然得到他们所有工资的 0.0 值,但他们的其余信息打印正确。谁能帮我解决这个问题?谢谢!
解决方案
在您提供的代码中没有setter
方法,而是有一个方法getter
。是的,您可以在 getter 和 setter 中进行计算。
public void setAmount(int amount){
this.amount = quantity * price;
}
public void getAmount(){
return this.amount + otherProperty;
}
推荐阅读
- html - 使用 webpack 构建 i18n 多页站点的正确方法是什么?
- javascript - 数组数组的 JavaScript reduce() 方法行为
- mysql - mysqldump 丢失了外键约束的引用动作子句
- javascript - React img onError 事件未触发
- javascript - 如何刷新模式弹出窗口中的数据或转发到模式弹出窗口
- laravel - Laravel 5 多租户应用程序,带有用于 octoberCMS 的单个数据库
- php - 如何为 FROM 设置别名?在 php laravel 中
- python - 使用 Visual Studio 在 C++ 中嵌入 Python 代码,无需安装 Python
- symfony - Symfony 资产函数在 http url 前面添加 /
- html - 如何将所有元素放在弹性列的底部