Tr v
ở ề M c l c
ụ ụ cu n sách
ố
15.1 Các ngôn ng và phong cách l p trình
ữ
ậ
Có nhi u ngôn ng l p trình khác nhau, và không kém m y v s l
ng là các phong cách l p trình (còn
ề
ữ ậ
ấ ề ố ượ
ậ
g i là m u hình). Nh ng ch
ng trình mà ta đã vi t đ n gi đ u thu c phong cách
ọ
ẫ
ữ
ươ
ế ế
ờ ề
ộ
th t c
ủ ụ , b i chú ý
ở
đ
c d n vào vi c quy đ nh các th t c tính toán.
ượ ồ
ệ
ị
ủ ụ
Đa s các ch
ng trình Java đ u
ố
ươ
ề h
ng đ i t
ng
ướ
ố ượ , có nghĩa là t p trung v nh ng đ i t ng và t ng
ậ
ề
ữ
ố ượ
ươ
tác gi a chúng. Sau đây là m t s đ c tính c a l p trình h
ng đ i t
ng:
ữ
ộ ố ặ
ủ ậ
ướ
ố ượ
•
Đ i t
ng th
ng bi u di n cho nh ng th c th ngoài đ i. Trong ch
ng tr
c, vi c t o nên
ố ượ
ườ
ể
ễ
ữ
ự
ể
ờ
ươ
ướ
ệ ạ
l p
ớ Deck là m t b c h ng t i l p trình h ng đ i t ng.
ộ ướ ướ
ớ ậ
ướ
ố ượ
•
Đa s các ph
ng th c là ph
ng th c đ i t
ng (nh nh ng ph
ng th c mà ta kích ho t lên
ố
ươ
ứ
ươ
ứ ố ượ
ư
ữ
ươ
ứ
ạ
các Strings) thay vì các ph
ng th c l p (nh các ph
ng th c
ươ
ứ ớ
ư
ươ
ứ Math). Nh ng ph ng th c mà đ n gi
ữ
ươ
ứ
ế
ờ
ta đã vi t v n là ph
ng th c l p. ch
ng này ta s vi t m t s ph
ng th c đ i t
ng.
ế ẫ
ươ
ứ ớ Ở ươ
ẽ ế
ộ ố
ươ
ứ ố ượ
•
Các đ i t
ng cô l p kh i nhau b ng cách h n ch nh ng cách th c t
ng tác gi a chúng, đ c bi t
ố ượ
ậ
ỏ
ằ
ạ
ế
ữ
ứ ươ
ữ
ặ
ệ
b ng cách ngăn không cho chúng truy c p các bi n th c th mà không kích ho t các ph
ng th c.
ằ
ậ
ế
ự
ể
ạ
ươ
ứ
•
Các l p đ
c t ch c trong cây gia đình, đó nh ng l p m i thì m r ng t l p cũ, qua vi c b sung
ớ
ượ ổ ứ
ở
ữ
ớ
ớ
ở ộ
ừ ớ
ệ ổ
nh ng ph
ng th c m i và thay th ph
ng th c s n có.
ữ
ươ
ứ
ớ
ế
ươ
ứ ẵ
ch
ng này tôi chuy n ch
ng trình
Ở ươ
ể
ươ
Card ch
ng tr
c, t phong cách th t c sang h
ng đ i
ở ươ
ướ
ừ
ủ ụ
ướ
ố
t
ng. B n có th t i v mã l nh t ch
ng này t i
ượ
ạ
ể ả ề
ệ
ừ ươ
ạ http://thinkapjava.com/code/Card3.java.
15.2 Các ph
ng th c đ i t
ng và ph
ng th c l p
ươ
ứ
ố ượ
ươ
ứ ớ
Có hai ki u ph
ng th c trong Java, g i là
ể
ươ
ứ
ọ
ph
ng th c l p
ươ
ứ ớ và ph ng th c đ i t ng
ươ
ứ
ố ượ . Ph ng
ươ
th c l p d nh n th y b i có t khóa
ứ ớ
ễ
ậ
ấ ở
ừ
static ngay trên dòng đ u. Còn b t kì ph
ng th c nào
ầ
ấ
ươ
ứ
không có t
ừ
khóa static này thì đ u là ph
ng th c đ i t
ng.
ề
ươ
ứ ố ượ
Dù ch a vi t đ
c ph
ng th c đ i t
ng nào, song ta đã kích ho t m t s ph
ng th c nh v y. M i
ư
ế ượ
ươ
ứ ố ượ
ạ
ộ ố
ươ
ứ
ư ậ
ỗ
khi b n kích ho t m t ph
ng th c “lên” m t đ i t
ng, thì đó chính là ph
ng th c đ i t
ng. Ch ng
ạ
ạ
ộ
ươ
ứ
ộ ố ượ
ươ
ứ ố ượ
ẳ
h n,
ạ charAt và nh ng ph ng th c khác mà ta kích ho t lên nh ng đ i t ng
ữ
ươ
ứ
ạ
ữ
ố ượ String đ u là các ph ng
ề
ươ
th c đ i t
ng.
ứ ố ượ
B t c th gì vi t đ
c là ph
ng th c l p cũng có th đ
c vi t thành ph
ng th c đ i t
ng, và
ấ ứ ứ
ế ượ
ươ
ứ ớ
ể ượ
ế
ươ
ứ ố ượ
ng
c l i. Song đôi khi, s có m t cách vi t t nhiên h n cách kia.
ượ ạ
ẽ
ộ
ế ự
ơ
Ch ng h n, sau đây là
ẳ
ạ
printCard vi t d
i d ng ph
ng th c l p:
ế ướ ạ
ươ
ứ ớ
public static void
printCard(Card c) {
System.out.println(ranks[c.rank] +
" of "
+ suits[c.suit]);
}
Còn sau đây, nó đ
c vi t l i thành ph
ng th c đ i t
ng:
ượ
ế ạ
ươ
ứ ố ượ
public void
print() {
System.out.println(ranks[rank] +
" of "
+ suits[suit]);
}