qq_23842231
qq_23842231
2016-02-10 12:08
采纳率: 66.7%
浏览 1.5k

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
    毕小宝 2016-02-10 12:13

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

     public Area(int i,int j){
       this.width=i;
       this.length=j;
     }
    
    点赞 评论
  • 91program
    91program 2016-02-10 14:07

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

    点赞 评论
  • devmiao
    devmiao 2016-02-10 14:14

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

    点赞 评论
  • xionglangs
    编程爱好者熊浪 2016-02-14 06:51

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

    点赞 评论
  • collin18
    collin18 2016-02-18 12:33

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

    点赞 评论

相关推荐