构造函数初始化:赋值给变量长度无效警告

时间:2015-03-25 11:23:55

标签: java

我有一个警告:对变量长度的赋值在输出中没有效果和默认值。如果我添加此关键字警告消失。为什么会这样? 这是我的代码

  class Rectangle {
  int length;
  String breadth;

  Rectangle(int length,String breadth)
  {
  length  = length;
  breadth = breadth;
  }
}

class basic2 {
  public static void main(String args[]) {

  Rectangle r1 = new Rectangle(20,"hi");

  System.out.println("Length of Rectangle : " + r1.length);
  System.out.println("Breadth of Rectangle : " + r1.breadth);

  }
}`

2 个答案:

答案 0 :(得分:2)

您的构造函数参数会隐藏类成员,因为它们具有相同的名称。因此length = length;将变量分配给自身,这是没有意义的。

要解决此问题,请使用this关键字来引用班级成员:

Rectangle(int length,String breadth)
{
  this.length  = length;
  this.breadth = breadth;
}

答案 1 :(得分:0)

因为您指的是构造函数的参数。使用this.length=length