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

Sau đây là nh ng thay đ i:

1.

Tôi đã xóa t

ừ static.

2.Tôi thay đ i tên c a ph

ng th c đ gi ng v i gi ng đ c Java h n.

ươ

ứ ể ố

ơ

3.Tôi b tham s đi.

4.

Bên trong m t ph

ng th c đ i t

ng, b n có th tham chi u đ n các bi n th c th nh th chúng là

ươ

ứ ố ượ

ế

ế

ế

ư ể

nh ng bi n đ a ph

ng, vì v y tôi đ i

ế

ươ

ổ c.rank thành rank, và t ng t v i

ươ

ự ớ suit.

Đây là cách kích ho t ph

ng th c m i này:

ươ

Card card =

new

Card(1, 1);

card.print();

Khi b n kích ho t m t ph

ng th c lên m t đ i t

ng thì đ i t

ng đó tr thành

ươ

ộ ố ượ

ố ượ

đ i t

ng hi n

ố ượ

hành, còn đ

c g i là

ượ ọ

this. Bên trong print, t khóa

this tham chi u đ n lá bài mà ph

ng th c đ

c

ế

ế

ươ

ứ ượ

kích ho t lên đó.

15.3 Ph

ng th c

ươ

ứ toString

T ng ki u đ i t

ng đ u có m t ph

ng th c mang tên

ố ượ

ươ

toString đ tr l i m t chu i bi u di n cho đ i

ể ả ạ

t

ng đó. Khi b n in ra đ i t

ng b ng l nh

ượ

ố ượ

ệ print ho c

ặ println, Java s kích ho t ph ng

ươ

th c

ứ toString c a đ i t ng này.

ố ượ

Phiên b n m c đ nh c a

ặ ị

ủ toString tr l i m t chu i có ch a ki u c a đ i t ng và m t s nh n di n duy

ả ạ

ể ủ

ố ượ

ộ ố

nh t (xem M c

ụ 11.6). Khi b n đ nh nghĩa m t ki u đ i t ng m i, b n có th

ố ượ

s a đè

lên hành vi m c

đ nh này b ng cách cung c p m t ph

ng th c m i ch a hành vi mà b n mu n.

ươ

Ch ng h n, sau đây là m t ph

ng th c

ươ

ứ toString đ i v i

ố ớ Card:

public

String toString() {

return

ranks[rank] +

" of "

+ suits[suit];

}

Ki u tr l i là

ả ạ

String, theo l t nhiên; và ph

ng th c này không nh n tham s nào. B n có th kích

ẽ ự

ươ

ho t

ạ toString theo l i thông th ng:

ườ

Card card =

new

Card(1, 1);

String s = card.toString();

ho c b n cũng có th kích ho t gián ti p nó thông qua

ặ ạ

ế

println:

System.out.println(card);

15.4 Ph

ng th c

ươ

ứ equals

M c

Ở ụ 13.4 ta đã nói v hai hình th c cân b ng: s gi ng h , nghĩa là hai bi n cùng tham chi u t i m t

ự ố

ế

ế ớ

đ i t

ng, và s t

ng đ

ng, t c là hai bi n có cùng giá tr .

ố ượ

ự ươ

ươ

ế

Toán t

ử == ki m tra s gi ng h t, nh ng không có toán t nào đ ki m tra s t ng đ ng, b i “t ng

ự ố

ư

ể ể

ự ươ

ở ươ

đ ng” th nào thì còn ph thu c vào ki u c a đ i t

ng n a. Thay vì v y, các đ i t

ng l i cung c p

ế

ể ủ

ố ượ

ố ượ

m t ph

ng th c có tên

ươ

equals đ đ nh nghĩa s t

ng đ ng này.

ể ị

ự ươ

Các l p trong Java cung c p nh ng ph

ng th c

ươ

ứ equals đ làm đi u đúng đ n. Nh ng v i nh ng ki u

ư

do ng

i dùng đ nh nghĩa thì cách ng x m c đ nh c a ph

ng th c này cũng ch ng khác gì s gi ng

ườ

ử ặ ị

ươ

ự ố

h t; đây không ph i là đi u b n mong mu n.

Đ i v i

ố ớ Card ta đã có m t ph ng th c đ ki m tra s t ng đ ng:

ươ

ứ ể ể

ự ươ

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.