class employee { public employee(String n,double s,int year, int month,int day) { name =n; Salary = s.doubleValue() ; GregorianCalendar Calendar = new GregorianCalendar(year,month-1,day); //GregorianCalendar 计算月份从0开始
HireDay = Calendar.getTime(); }
public String getName() { return name; } public Double getSalary() { return Salary; } public Date getHireDay() { return HireDay; }
double a = 1.0;
double b = 2.0;
double c = a + b ;
System.out.println("c="+c);
}
}
没有问题啊,两个double类型的相加啊,楼主代码是什么?
用d1.doubleValue() + d2.doubleValue() 进行加操作。
//managertest.java
//演示Employee与Manager的区别
import java.io.*;
import java.util.*;
import java.lang.*;
public class managertest
{
public static void main(String[] args)
{
//创建一个新的经理
manager boss=new manager("非通过",8000,1985,15,20);
boss.setbonus(5000);
employee[] staff= new employee[3];
//建立员工数据与经理一起填充
staff[0]=boss;
staff[1]=new employee("斯蒂芬",4000,1983,2,15);
//打印所有员工的信息
for(int i =0; i<staff.length;i++)
{
employee e=staff[i];
System.out.println("name="+ e.getName()+", Salary= "+e.getSalary());
}
}
}
class employee
{
public employee(String n,double s,int year,
int month,int day)
{
name =n;
Salary = s.doubleValue() ;
GregorianCalendar Calendar
= new GregorianCalendar(year,month-1,day);
//GregorianCalendar 计算月份从0开始
HireDay = Calendar.getTime();
}
public String getName()
{
return name;
}
public Double getSalary()
{
return Salary;
}
public Date getHireDay()
{
return HireDay;
}
public void raiseSalary(double byPercent)
{
double raise = Salary*byPercent/100;
Salary = Salary + raise;
}
public String name;
public Double Salary;
public Date HireDay;
}
class manager extends employee
{
public manager(String n,double s,int year,int month,int day)
{
super(n,s,year,month,day);
bonus =0;
}
public Double getSalary()
{
Double baseSalary = super.getSalary();
return baseSalary + bonus;
}
public void setbonus(double b)
{
bonus =b;
}
private double bonus;
}
return baseSalary + bonus;
关于Double的操作上面已经说的很清楚了你把getSalsry()的返回类型改称double的
Double是对double的一种封装,它没有‘+’操作
Double是对象,double是基本数据类型。
如这个函数:
public employee(String n,double s,int year,
int month,int day)
{
name =n;
Salary = new Double(s);
// Salary = s.doubleValue() ;
GregorianCalendar Calendar
= new GregorianCalendar(year,month-1,day);
//GregorianCalendar 计算月份从0开始
HireDay = Calendar.getTime();
}
incompatible types
found :double
required : java,.lang,.Double
Salary = s;
一个是Double型的一个是double型的吧
所以会有类型矛盾这个错误。
Double不能+
operator + cannot be applied to java.lang.Double,double
return baseSalary + raise;
2:
incompatible types
found :java.lang.Double
Required: double
double baseSalary = super.getSalary();3:
incompatible types
found :double
required : java.lang.Double
return baseSalary + bonus=================================
这三个错误都是混淆Double和double造成的
这样表示可以吗?
"我还应该怎么换?" 是什么意思?
其它解决方法?
建议你做一个小的关于Double和double互相联系的程序,在你那个大程序里,理解起来太烦了,自己多体会体会就好了。