遇到一个类的对象给方法值传递时的出现的问题,求教?

远山4587 2014-03-18 03:51:20
这是书上的一个习题,请注意第3行和第6行的新建类的对象时的参数,根据书上的习题这样的传递参数应该是正确的,但书上的习题都只有一个参数(数据域),这个题有两个参数,编译时提示getArea()和getPerimeter()方法找不到正确的参数,怎么办?
public class TestRectangle{
public static void main(String[] args){
Rectangle jx1=new Rectangle(4,40);
System.out.println("jx1's area is "+jx1.getArea()+
"perimeter is"+jx1.getPerimeter());
Rectangle jx2=new Rectangle(3.5,35.9);
System.out.println("jx2's area is "+jx2.getArea()+
"perimeter is "+jx2.getPerimeter());

}

}
class Rectangle{
//数据域
double width;
double height;
//创建一个无参构造方法
Rectangle(){
width=1;
height=1;
}
//创建一个指定值的矩形构造方法
Rectangle(double newWidth,double newHeight){
width=newWidth;
height=newHeight;
}
//创建一个计算矩形面积的方法
double getArea(double width,double height){
double Area=0;
Area=width*height;
return Area;
}
//创建一个计算周长的方法
double getPerimeter(double width,double height){
double perimeter=0;
perimeter=(width+height)*2;
return perimeter;
}
}
...全文
151 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
远山4587 2014-03-18
  • 打赏
  • 举报
回复
问题已经解决,谢谢大家!
-江沐风- 2014-03-18
  • 打赏
  • 举报
回复
原因:你定义的getArea和getPerimeter方法有参数,但在调用的时候却是调用没有参数的这两个方法,当然会报错; 解决:直接将getArea和getPerimeter方法中的参数去掉即可;
public class TestRectangle
{
	public static void main(String[] args)
	{
		Rectangle jx1 = new Rectangle(4, 40);
		System.out.println("jx1's area is " + jx1.getArea() + "perimeter is"
				+ jx1.getPerimeter());
		Rectangle jx2 = new Rectangle(3.5, 35.9);
		System.out.println("jx2's area is " + jx2.getArea() + "perimeter is "
				+ jx2.getPerimeter());
	}

}

class Rectangle
{
	double width;
	double height;

	Rectangle()
	{
		width = 1;
		height = 1;
	}

	Rectangle(double newWidth, double newHeight)
	{
		width = newWidth;
		height = newHeight;
	}

	double getArea()
	{
//		double Area = 0;
//		Area = width * height;
//		return Area;
		return width*height;
	}

	double getPerimeter()
	{
//		double perimeter = 0;
//		perimeter = (width + height) * 2;
//		return perimeter;
		return (width+height)*2;
	}
}
momoyssy 2014-03-18
  • 打赏
  • 举报
回复
类里面的两个方法是带参的,你调用的方法却是不带参的,你可以重写两个不带参的方法,楼上写的那样,加进类里去就可以了。java不像javascript 方法的参数可以省略。
S117 2014-03-18
  • 打赏
  • 举报
回复
get方法不要带参数,参数通过构造函数或者set方法注入!
这个小伙子 2014-03-18
  • 打赏
  • 举报
回复
修改下,两个方法都不需要传入参数的,你构造器里面已经赋值了,这里就没必要再使用传参了 //创建一个计算矩形面积的方法 double getArea(){ double Area=0; Area=width*height; return Area; } //创建一个计算周长的方法 double getPerimeter(){ double perimeter=0; perimeter=(width+height)*2; return perimeter; }

62,614

社区成员

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

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