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 Lập trình hướng đối tượng trong java (Trang 108 - 111)

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 Lập trình hướng đối tượng trong java (Trang 108 - 111)

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

(193 trang)