构造函数Bug

时间:2015-02-27 03:33:22

标签: java constructor initialization

我正在尝试创建一个表示100位整数的类。不是因为我需要它,而是要了解有关构造函数的更多信息。构造函数接受一个String(所有数字)并将每个数字放入一个数组的元素中。索引0是那个位置,索引1是十位,...每当我尝试创建第二个对象(Bint)时,它将第一个Bint的所有字段替换为第二个Bint的字段。 (Bint = Big Int)

public class Bint
{
// Fields:
private static int[] nums = new int[100];

// Constructor:
public Bint(String s)
{
  for(int i = 0; i < s.length(); i++)
  {
    nums[i] = Integer.parseInt("" + s.charAt(s.length() - i - 1));
  }
}

  ...

public static void main(String[] args)
{
  Bint b1 = new Bint("12");
  Bint b2 = new Bint("23");
  System.out.println(toString(add(b1, b2)));
}

打印出46(23 + 23,因为b2以某种方式替换了构造函数中的b1。)

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

static个字段属于类,并不特定于该类的任何对象。

建议阅读:http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html