2 qq 23842231 qq_23842231 于 2016.02.10 20:08 提问

java构造器,与方法怎么传参,这样不对吗?为什么结果是0

public class Area {
int width;
int length;
public static void main(String[] args) {
Area ar=new Area(2,3);
int areas=ar.area();
System.out.println(areas);
}
public int area(){
return this.width*this.length;
}
public Area(int i,int j){
i=this.width;
j=this.length;
}
}

5个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.10 20:13

你的参数使用方法错误,赋值语句反了,构造函数的方法应该这样使用传入的参数对类的成员变量赋值,修正如下:

 public Area(int i,int j){
   this.width=i;
   this.length=j;
 }
caozhy
caozhy 正解
接近 2 年之前 回复
qq_23842231
qq_23842231 哦,果然运行对了,谢谢
接近 2 年之前 回复
devmiao
devmiao   Ds   Rxr 2016.02.10 22:14

i=this.width;
->
this.width=i;

xionglangs
xionglangs   Rxr 2016.02.14 14:51

写反了图片说明,赋值是把后面的值付给前面的。

collin18
collin18   2016.02.18 20:33

需要修改一下Area(int i,int j)构造函数:
public Area(int i,int j){
this.width = i;
this.length = j;
}

91program
91program   Ds   Rxr 2016.02.10 22:07

建议你以后这样的问题,最好是能单步调试一下。
如果能,在单步到 area() 函数中时,观察变量时你就会发现用于计算面积的变量的值都不对;然后,你就会想到为这两个变量 赋值的地方!这样查下去,也能发现问题的原因。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!