if
(card1 == card2) {
System.out.println(
"card1 và card2 giống hệt nhau."
);
}
Các tham chi u đ n cùng đ i t
ng thì
ế
ế
ố ượ
gi ng h t
ố
ệ nhau. Còn các tham chi u đ n các đ i t ng v i d
ế
ế
ố ượ
ớ ữ
li u nh nhau thì s
ệ
ư
ẽ t ng đ ng
ươ
ồ v i nhau.
ớ
Đ ki m tra s t
ng đ ng, ng
i ta th
ng vi t m t ph
ng th c có tên g i ki u nh
ể ể
ự ươ
ồ
ườ
ườ
ế
ộ
ươ
ứ
ọ
ể
ư sameCard.
public static boolean
sameCard(Card c1, Card c2) {
return
(c1.suit == c2.suit && c1.rank == c2.rank);
}
Sau đây là m t ví d đ t o nên hai đ i t
ng có d li u gi ng nhau, r i dùng
ộ
ụ ể ạ
ố ượ
ữ ệ
ố
ồ
sameCard đ ki m tra
ể ể
xem li u chúng có t
ng đ ng không:
ệ
ươ
ồ
Card card1 =
new
Card(1, 11);
Card card2 =
new
Card(1, 11);
if
(sameCard(card1, card2)) {
System.out.println(
"card1 and card2 tuong dong nhau."
);
}
N u các tham chi u gi ng nhau thì chúng t
ng đ ng. Song n u chúng t
ng đ ng thì ch a ch c chúng
ế
ế
ố
ươ
ồ
ế
ươ
ồ
ư
ắ
đã gi ng h t nhau.
ố
ệ
đây,
Ở
card1 và card2 t
ng đ ng nh ng không gi ng h t, cho nên s đ tr ng thái s nh sau:
ươ
ồ
ư
ố
ệ
ơ ồ ạ
ẽ
ư
S đ này s trông th nào n u
ơ ồ
ẽ
ế
ế card1 và card2 gi ng h t nhau?
ố
ệ
M c
Ở ụ 8.10, tôi đã nói r ng b n không nên dùng toán t
ằ
ạ
ử == đ i v i
ố ớ String vì nó s không ho t đ ng
ẽ
ạ ộ
theo ý mình. Thay vì vi c so sánh n i dung c a các
ệ
ộ
ủ
String (so sánh t
ng đ ng), nó l i đi ki m tra xem
ươ
ồ
ạ
ể
hai String này có ph i cùng đ i t
ng (gi ng h t) không.
ả
ố ượ
ố
ệ
13.5 Ph
ng th c
ươ
ứ compareCard
V i nh ng ki u nguyên th y, các toán t đi u ki n so sánh hai giá tr r i quy t đ nh xem cái nào l n hay
ớ
ữ
ể
ủ
ử ề
ệ
ị ồ
ế ị
ớ
nh h n các kia. Nh ng toán t nh v y (
ỏ ơ
ữ
ử
ư ậ < và > cùng nh ng cái khác) không ho t đ ng đ c v i ki u
ữ
ạ ộ
ượ ớ
ể
đ i t
ng. V i các chu i, Java cung c p m t ph
ng th c
ố ượ
ớ
ỗ
ấ
ộ
ươ
ứ compareTo. Còn v i
ớ Cards thì ta ph i t vi t
ả ự ế
ph
ng th c riêng, mà ta s g i là
ươ
ứ
ẽ ọ
compareCard. Sau này, ta s dùng ph
ng th c này đ s p x p m t
ẽ
ươ
ứ
ể ắ
ế
ộ
c bài.
ỗ
Có nh ng t p h p đ
c x p th t hoàn toàn, theo nghĩa là b n có th so sánh hai ph n t b t kì trong
ữ
ậ
ợ
ượ ế
ứ ự
ạ
ể
ầ ử ấ
đó đ bi t đ
c ph n t nào l n h n. L i có nh ng t p h p không s p x p đ
c, theo nghĩa là ch ng có
ể ế ượ
ầ ử
ớ
ơ
ạ
ữ
ậ
ợ
ắ
ế
ượ
ẳ
nghĩa lý gì đ nói r ng ph n t này l n h n ph n t kia. Các s nguyên và s ph y đ ng là lo i th t
ể
ằ
ầ ử
ớ
ơ
ầ ử
ố
ố
ẩ
ộ
ạ
ứ ự