这个程序的薪水为什么没有涨?

u010179812 2014-01-20 09:22:10
下面这个程序我设计薪水涨10%,但是结果是没变,为什么?

import java.util.*;

public class Test
{
public static void main(String[] args)
{
Employee[] staff = new Employee[3];
staff[0] = new Employee("abc", 3000, 1999, 10, 20);
staff[1] = new Employee("efg", 4000, 2000, 11, 12);
staff[2] = new Employee("opq", 5000, 2012, 6, 12);

for(Employee e: staff)
{
e.raiseSalary(10);
}

for(Employee e: staff)
{
System.out.println(e.getName() + " "+ e.getSalary() + " " + e.getHireDay());
}
}
}

class Employee
{
public Employee(String n, double s, int year, int month, int day)
{
name = n;
salary = s;
GregorianCalendar calendar = new GregorianCalendar(year, month-1, day);
hireDay = calendar.getTime();
}

public String getName()
{
return name;
}

public double getSalary()
{
return salary;
}

public Date getHireDay()
{
return hireDay;
}

public void raiseSalary(int x)
{
salary = salary*(1 + x/100);
}

String name;
double salary;
Date hireDay;
}
...全文
95 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010179812 2014-01-20
  • 打赏
  • 举报
回复
嗯,楼上的方法更好。
是奉壹啊 2014-01-20
  • 打赏
  • 举报
回复
表达式的问题,这里 x/100 把这里声明成double x吧 public void raiseSalary(int x)
u010179812 2014-01-20
  • 打赏
  • 举报
回复
这自己这会儿又发现问题了,原来在
public void raiseSalary(int x)
        {
                salary = salary*(1 + x/100);                
        }
应把int x改成double x,数据类型不对。这个还真是难以注意到。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧