THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 86

Rectangle box1 =

new

Rectangle(0, 0, 100, 200);

Rectangle box2 = box1;

t o nên m t bi u đ tr ng thái trông nh sau:

ồ ạ

ư

box1 và box2 cùng ch đ n m t đ i t

ng. Nói cách khác, đ i t

ng này có hai tên g i,

ỉ ế

ộ ố ượ

ố ượ

ọ box1 và box2.

Vi c ng

i nào đó dùng hai tên đ

c g i là

ườ

ượ ọ

aliasing (dùng bí danh). V i đ i t

ng cũng nh v y.

ớ ố ượ

ư ậ

Khi hai bi n đ

c dùng bí danh, b t kì s thay đ i nào nh h

ng t i bi n này thì cũng nh h

ng t i

ế

ượ

ưở

ế

ưở

bi n kia. Ch ng h n:

ế

System.out.println(box2.width);

box1.grow(50, 50);

System.out.println(box2.width);

Dòng l nh th nh t in ra

100, v n là b r ng c a

ề ộ

ủ Rectangle đ c tham chi u qua bi n

ượ

ế

ế box2. Dòng th

hai kích ho t ph

ng th c

ươ

ứ grow lên box1, đ m r ng

ể ở ộ Rectangle thêm 50 đi m nh theo m i chi u (hãy

ể ả

đ c tài li u đ bi t thêm thông tin). Hi u ng đ

c cho th y hình v d

i đây:

ể ế

ệ ứ

ượ

ấ ở

ẽ ướ

B t k thay đ i nào th c hi n đ i v i

ấ ể

ố ớ box1 thì cũng nh h ng đ n

ưở

ế box2. Do v y, giá tr đ c in ra b i

ị ượ

dòng l nh th ba là

200, b r ng c a hình ch nh t sau khi m r ng. (Nói thêm, vi c các to đ c a

ề ộ

ở ộ

ạ ộ ủ

m t

ộ Rectangle nh n giá tr âm là hoàn toàn h p l .)

ợ ệ

T ví d đ n gi n này b n có th th y r ng mã l nh có ch a bí d ng nhanh chóng khi n ta nh m l n và

ụ ơ

ể ấ ằ

ế

có th khó g l i. Nói chung, nên tránh dùng bí danh ho c dùng th t c n th n.

ỡ ỗ

ậ ẩ

9.9 null

Khi b n t o nên m t bi n đ i t

ng, hãy nh r ng b n đang t o nên m t

ạ ạ

ế

ố ượ

ớ ằ

tham chi u

ế đ n đ i t ng.

ế

ố ượ

Tr

c khi b n khi n cho m t bi n ch t i đ i t

ng, thì giá tr c a bi n v n là

ướ

ế

ế

ỉ ớ ố ượ

ị ủ

ế

null. null là m t giá tr đ c

ị ặ

bi t (và cũng là m t t khoá trong Java) có nghĩa là “không có đ i t

ng.”

ộ ừ

ố ượ

L i khai báo

Point blank; thì t

ng đ

ng v i l nh kh i t o sau

ươ

ươ

ớ ệ

ở ạ

Point blank =

null

;

và đ

c bi u di n b i bi u đ tr ng thái sau:

ượ

ồ ạ

Giá tr

ị null đ c bi u th b ng m t hình vuông nh không kèm theo mũi tên.

ượ

ị ằ

N u b n c th dùng m t đ i t

ng null, qua vi c truy c p m t bi n th c th hay kích ho t m t

ế

ạ ố ử

ộ ố ượ

ế