2011-07-03 60 views
12

Hãy tưởng tượng một thể hiện của BigInteger, sau đó làm thế nào để khởi tạo nó sau khi tạo cá thể?Làm thế nào để khởi tạo BigInteger sau khi tạo instantces (constructor không thể được gọi)

Ví dụ:

BigInteger t = new BigInteger(); 

Làm thế nào để đặt một giá trị trong t?

Nếu không thể gọi hàm tạo, thì có thể làm gì để đặt giá trị trong đối tượng?

+3

Để tìm hiểu làm thế nào để sử dụng một lớp, đọc tài liệu hướng dẫn của nó. Tất cả các lớp tiêu chuẩn được ghi lại: http://download.oracle.com/javase/6/docs/api/. Các tài liệu của BigInteger là ở đây: http://download.oracle.com/javase/6/docs/api/java/math/BigInteger.html –

Trả lời

9

Tôi không chắc chắn 100% những gì cụ thể gây nhầm lẫn cho bạn khi bạn khởi tạo các mục trong mảng BigInteger như bất kỳ mảng đối tượng nào khác. ví dụ,

BigInteger t2 [] = new BigInteger[2]; 

    t2[0] = new BigInteger("2"); 
    t2[1] = BigInteger.ZERO; // ZERO, ONE, and TEN are defined by constants 

    // or 

    BigInteger[] t3 = {new BigInteger("2"), BigInteger.ZERO}; 

Sửa 1:
Ah, bây giờ tôi hiểu vấn đề của bạn: bạn muốn tạo một đối tượng BigInteger và sau đó thiết lập giá trị của nó. Câu trả lời là giống như đối với Strings: bạn không thể và đó là do BigIntegers như Strings là không thay đổi và không thể thay đổi khi được tạo. Vì lý do này, lớp không có phương thức "setter". Cách thay đổi giá trị của biến BigInteger là đặt giá trị đó thành phiên bản BigInteger mới.

+0

ok, cảm ơn, nếu nó không có mảng, và đối tượng sẽ đã được tạo, sau đó giá trị đã được đặt trong BigInteger – CoolEulerProject

+0

Câu hỏi đã sửa đổi – CoolEulerProject

+0

@CoolEulerProject: Vui lòng xem sửa đổi (** Chỉnh sửa 1 **) trong câu trả lời của tôi ở trên. –

5

Để chuyển đổi một số nguyên (hoặc số nguyên thường) thành BigInteger, hãy sử dụng giá trị phương thức nhà máy tĩnhOf. Cuộc gọi BigInteger.valueOf(<i>someInteger</i>) trả về đối tượng BigInteger mới giữ giá trị số nguyên bạn chỉ định. Bạn cũng có thể sử dụng mới BigInteger("" + <i>someInteger</i>) để có được cùng một điều, nhưng điều này là clunkier.

+0

cảm ơn, nhưng làm thế nào để thay thế giá trị trong BigInteger bằng cách sử dụng chuỗi – CoolEulerProject

+1

BigInteger có một hàm tạo chấp nhận một chuỗi đại diện của một số và tạo ra một đối tượng BigInteger cho bạn. – ncmathsadist

+3

Đọc tài liệu. Câu đầu tiên của nó là: * Số nguyên chính xác tùy ý bất biến *. Một BigInteger là bất biến. Sau khi tạo, nó không thể thay đổi được nữa. Xây dựng một cái khác. –

2

đây là một số ví dụ:

BigInteger t = BigInteger.valueOf(23); 
    int i = 66; 
    t = BigInteger.valueOf(i); 
    t = BigInteger.ZERO 
0

tôi đã làm một cái gì đó như thế này

//initialize with zero 
BigInteger t = BigInteger.ZERO; 

//if i is any value that is to be assigned 
t=t.add(BigInteger.valueOf(i)); 
Các vấn đề liên quan