package net.yeah.lijun;class Lader
{
double above, bottom, height; Lader(double a, double b, double h) //构造方法
{
above = a;
bottom = b;
height = h;
} public void setAbove(double a)
{
above = a;
} public void setBottom(double b)
{
bottom = b;
} public void setHeight(double h)
{
height = h;
} double computerArea()
{
return (above + bottom) * height / 2.0;
}
}public class Example
{ public static void main(String[] args)
{
double area1,area2=0;
Lader laderOne,laderTwo; //声明对象
laderOne=new Lader(5,10,12);
laderTwo = new Lader(10,20.45,20);
area1=laderOne.computerArea();
area2=laderTwo.computerArea();
System.out.printf("laderOne和laderTwo的面积分别是:%n%f,%f\n",area1,area2); //此处出错
laderOne.setAbove(10);
laderTwo.setBottom(40);
area1=laderOne.computerArea();
area2=laderTwo.computerArea();
System.out.printf("laderOne和laderTwo的面积分别是:%n%f,%f\n",area1,area2); //此处出错
}
}程序中两个printf()出错!
我使用的是:Eclipse3.0.1和JDK1.5.0
小弟港学习java,请各位大虾指点!
{
double above, bottom, height; Lader(double a, double b, double h) //构造方法
{
above = a;
bottom = b;
height = h;
} public void setAbove(double a)
{
above = a;
} public void setBottom(double b)
{
bottom = b;
} public void setHeight(double h)
{
height = h;
} double computerArea()
{
return (above + bottom) * height / 2.0;
}
}public class Example
{ public static void main(String[] args)
{
double area1,area2=0;
Lader laderOne,laderTwo; //声明对象
laderOne=new Lader(5,10,12);
laderTwo = new Lader(10,20.45,20);
area1=laderOne.computerArea();
area2=laderTwo.computerArea();
System.out.printf("laderOne和laderTwo的面积分别是:%n%f,%f\n",area1,area2); //此处出错
laderOne.setAbove(10);
laderTwo.setBottom(40);
area1=laderOne.computerArea();
area2=laderTwo.computerArea();
System.out.printf("laderOne和laderTwo的面积分别是:%n%f,%f\n",area1,area2); //此处出错
}
}程序中两个printf()出错!
我使用的是:Eclipse3.0.1和JDK1.5.0
小弟港学习java,请各位大虾指点!
谢谢!
不用IDE,在控制台试一下
// %f %n
JAVA中输出的是Systetm.out.println("");
你这种是C的,当然C这样写也不对的
System.out.printf("laderOne和laderTwo的面积分别是:%n%f,%f\n",area1,area2); //此处出错
但是,我不知道你所用的版本是什么,从1.5版本以后,java推出了一个自动装箱的功能,它能把一般类型的变量,自动转换为对象,就拿你这个例子来说。
area1和area2都是double类型,注意它只是Java内的一般类型,并不是变量,而
System.out.printf这个方法,具体的参数如下:
public PrintStream printf(String format,Object... args)
他的第一个是要求字符串,而其他的则需要对象这个参数,所以要解决这个问题,你必须要把area1和area2转换为对象,你自需要将
area1=laderOne.computerArea();
area2=laderTwo.computerArea();
这两个改成
area1=Double.valueOf(laderOne.computerArea());
area2=Double.valueOf(laderTwo.computerArea());
就行了,我建议你用Eclipse 3.2.0的版本,用这个可以更好的兼容Java 1.5以上的版本!!!
如
Double area1,area2;