Các phương thức valueOf được nạp chồng để cho phép chuyển một giá trị thành

Một phần của tài liệu Chương 2: lập trình hướng đối tượng (Trang 57 - 60)

xâu

static String valueOf(Object obj)//Chuyển một đối tượng thành xâu, bẳng cách gọi đến phương thức toString của đối tượng obj

static String valueOf(char[] characters)//Chuyển mảng các ký tự thành xâu. static String valueOf(boolean b)//Chuyển một giá trị logic thành xâu, xâu nhận được là “true” hoặc “false” tương ứng với giá trị true hoặc false của b

static String valueOf(char c)//Chuyển kí tự thành xâu static String valueOf(int i)//chuyển một số nguyên thành xâu static String valueOf(long l)//Chuyển một giá trị long thành xâu static String valueOf(float f)//chuyển một giá trị float thành xâu static String valueOf(double d)//chuyển một giá trị double thành xâu

2. Lớp StringBuffer

tượng dạng chuỗi. Các đối tượng của lớp này rất mềm dẻo, đó là các ký tự và các chuỗi có thể được chèn vào giữa đối tượng StringBuffer, hoặc nối thêm dữ liệu vào tại vị trí cuối. Lớp này cung cấp nhiều phương thức khởi tạo. Chương trình sau minh hoạ cách sử dụng các phương thức khởi tạo khác nhau để tạo ra các đối tượng của lớp này.

class StringBufferCons{

public static void main(String args[]){ StringBuffer s1 = new StringBuffer(); StringBuffer s2 = new StringBuffer(20);

StringBuffer s3 = new StringBuffer(“StringBuffer”); System.out.println(“s3 = “+ s3); System.out.println(s2.length()); //chứa 0 System.out.println(s3.length()); //chứa 12 System.out.println(s1.capacity()); //chứa 16 System.out.println(s2.capacity()); //chứa 20 System.out.println(s3.capacity()); //chứa 28 } }

“length()” và “capacity()” của StringBuffer là hai phương thức hoàn toàn khác nhau. Phương thức “length()” đề cập đến số các ký tự mà đối tượng thực chứa, trong khi “capacity()” trả về tổng dung lượng của một đối tượng (mặc định là 16)

và số ký tự trong đối tượng StringBuffer.

Dung lượng của StringBuffer có thể thay đổi với phương thức “ensureCapacity()”. Đối số int đã được truyền đến phương thức này, và dung lượng mới được tính toán như sau:

NewCapacity = OldCapacity * 2 + 2

Trước khi dung lượng của StringBuffer được đặt lại, điều kiện sau sẽ được kiểm tra:

1 Nếu dung lượng(NewCapacity) mới lớn hơn đối số được truyền cho phương thức “ensureCapacity()”, thì dung lượng mới (NewCapacity) được đặt.

2 Nếu dung lượng mới nhỏ hơn đối số được truyền cho phương thức “ensureCapacity()”, thì dung lượng được đặt bằng giá trị tham số truyền vào.

Chương trình sau minh hoạ dung lượng được tính toán và được đặt như thế nào.

class test{

public static void main(String args[]){

StringBuffer s1 = new StringBuffer(5);

System.out.println(“Dung lượng của bộ nhớ đệm = “+s1.capacity()); //chứa 5

s1.ensureCapacity(8);

System.out.println(“Dung lượng của bộ nhớ đệm = “+s1.capacity()); //chứa 12

s1.ensureCapacity(30);

System.out.println(“Dung lượng của bộ nhớ đệm = “+s1.capacity()); //chứa 30

} }

Trong đoạn mã trên, dung lượng ban đầu của s1 là 5. Câu lệnh

s1.ensureCapacity(8);

Thiết lập dung lượng của s1 đến 12 =(5*2+2) bởi vì dung lượng truyền vào là 8 nhỏ hơn dung lượng được tính toán là 12 .

s1.ensureCapacity(30);

Thiết lập dung lượng của “s1” đến 30 bởi vì dung lượng truyền vào là 30 thì lớn hơn dung lượng được tính toán (12*2+2).

Các phương thức lớp StringBuffer

Trong phần này, chúng ta sẽ xem xét các phương thức của lớp StringBuffer với một chương trình.

Một phần của tài liệu Chương 2: lập trình hướng đối tượng (Trang 57 - 60)

Tải bản đầy đủ (PDF)

(89 trang)