构造函数错误
Constructor Bug
我正在尝试创建一个 class 来表示一个有 100 位数字的整数。与其说是因为我需要它,不如说是为了学习更多关于构造函数的知识。构造函数接受一个字符串(所有数字)并将每个数字放入数组的一个元素中。索引 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。)
感谢任何帮助,谢谢!
static
字段属于 class 并且不特定于 class.
的任何对象
建议阅读:http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
我正在尝试创建一个 class 来表示一个有 100 位数字的整数。与其说是因为我需要它,不如说是为了学习更多关于构造函数的知识。构造函数接受一个字符串(所有数字)并将每个数字放入数组的一个元素中。索引 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。)
感谢任何帮助,谢谢!
static
字段属于 class 并且不特定于 class.
建议阅读:http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html