hàm thu n túy:
ầ
Ph ng th c mà k t qu ch ph thu c vào các tham s c a nó, và không gây hi u ng ph nào ngoài
ươ
ứ
ế
ả ỉ
ụ
ộ
ố ủ
ệ ứ
ụ
vi c tr l i m t giá tr .
ệ
ả ạ
ộ
ị
ph
ng th c s a đ i:
ươ
ứ ử
ổ
Ph ng th c làm thay đ i m t hay nhi u đ i t ng nh n làm tham s , và th
ng tr l i
ươ
ứ
ổ
ộ
ề
ố ượ
ậ
ố
ườ
ả ạ void.
ph
ng th c đi n:
ươ
ứ
ề
Ki u ph ng th c nh n tham s là m t đ i t
ng “tr ng không” và đi n vào nh ng bi n th c th c a
ể
ươ
ứ
ậ
ố
ộ ố ượ
ố
ề
ữ
ế
ự
ể ủ
nó thay vì vi c phát sinh m t giá tr tr l i.
ệ
ộ
ị ả ạ
thu t toán:
ậ
M t lo t nh ng ch d n nh m gi i m t l p các bài toán theo m t quá trình máy móc.
ộ
ạ
ữ
ỉ ẫ
ằ
ả
ộ ớ
ộ
11.15 Bài t p
ậ
Bài t p 1
ậ
Trong trò ch i trên bàn có tên Scrabble
ơ
, m i mi ng vuông đ x p lên bàn s ch a m t ch
ỗ
ế
ể ế
ẽ ứ
ộ
ữ
cái, đ xêm nên các t có nghĩa, và đ ng th i có m t đi m s ; t đó ta tính đ
c đi m cho các t khác
ể
ừ
ồ
ờ
ộ
ể
ố ừ
ượ
ể
ừ
nhau.
1.
Hãy vi t m t đ nh nghĩa l p có tên
ế
ộ ị
ớ
Tile đ bi u di n các mi ng vuông Scrabble. Các bi n th c th s
ể ể
ễ
ế
ế
ự
ể ẽ
g m m t kí t có tên
ồ
ộ
ự
letter và m t s nguyên có tên
ộ ố
value.
2.
Hãy vi t m t constructor đ nh n các tham s
ế
ộ
ể
ậ
ố letter và value r i kh i t o các bi n th c th .
ồ
ở ạ
ế
ự
ể
3.
Vi t m t ph
ng th c có tên
ế
ộ
ươ
ứ
printTile đ nh n tham s là m t đ i t
ng
ể
ậ
ố
ộ ố ượ Tile r i in ra các bi n th c th
ồ
ế
ự
ể
d
i đ nh d ng mà ng
i th
ng có th đ c đ
c.
ướ ị
ạ
ườ
ườ
ể ọ ượ
4.
Vi t m t ph
ng th c có tên
ế
ộ
ươ
ứ
testTile đ t o nên m t đ i t
ng Tile có ch cái
ể ạ
ộ ố ượ
ữ
Z và giá tr 10, r i
ị
ồ
dùng printTile đ in ra tr ng thái c a đ i t
ng này.
ể
ạ
ủ
ố ượ
M c đích c a bài t p này là đ luy n t p ph n c ch t o nên m t l i đ nh nghĩa l p và mã l nh đ ki m
ụ
ủ
ậ
ể
ệ ậ
ầ ơ ế ạ
ộ ờ ị
ớ
ệ
ể ể
tra nó.
Bài t p 2
ậ
Hãy vi t m t đ nh nghĩa l p c a
ế
ộ ị
ớ ủ Date, m t ki u đ i t ng bao g m ba s nguyên
ộ
ể
ố ượ
ồ
ố
là year, month và day. L p này c n ph i có hai constructor. Constructor th nh t không nh n tham s
ớ
ầ
ả
ứ
ấ
ậ
ố
nào. Constructor th hai nh n các tham s mang tên
ứ
ậ
ố
year, month và day, r i dùng chúng đ kh i t o
ồ
ể
ở ạ
các bi n th c th . Hãy vi t m t ph
ng th c
ế
ự
ể
ế
ộ
ươ
ứ main đ t o nên m t đ i t ng
ể ạ
ộ ố ượ Date m i có tên
ớ
birthday.
Đ i t
ng m i này đ ch a ngày sinh nh t c a b n. Có th dùng constructor nào cũng đ
c.
ố ượ
ớ
ể ứ
ậ ủ
ạ
ể
ượ
Bài t p 3
ậ
Phân s là s có th bi u đi n đ
c d
i d ng t s gi a hai s nguyên. Ch ng h n, 2/3 là
ố
ố
ể ể
ễ
ượ ướ ạ
ỉ ố ữ
ố
ẳ
ạ
m t phân s ,
ộ
ố và b n cũng có th coi 7 là m t phân s v i m u s ng m đ nh b ng 1. bài t p này, b n
ạ
ể
ộ
ố ớ
ẫ ố
ầ
ị
ằ
Ở
ậ
ạ
s vi t m t l i đ nh nghĩa l p cho các phân s .
ẽ ế
ộ ờ ị
ớ
ố
1.
L p m t ch
ng trình m i có tên
ậ
ộ
ươ
ớ
Rational.java đ đ nh nghĩa m t l p tên là
ể ị
ộ ớ
Rational. M t đ i
ộ ố
t
ng
ượ Rational ph i có hai bi n th c th s nguyên đ l u tr t s và m u s .
ả
ế
ự
ể ố
ể ư
ữ ử ố
ẫ ố
2. Vi t m t constructor không nh n tham s nào đ đ t t s b ng 0 và m u s b ng 1.
ế
ộ
ậ
ố
ể ặ ử ố ằ
ẫ ố ằ
3.
Vi t m t ph
ng th c có tên
ế
ộ
ươ
ứ
printRational đ nh n vào đ i s là m t đ i t
ng Rational r i in nó ra
ể
ậ
ố ố
ộ ố ượ
ồ
theo đ nh d ng h p lý.
ị
ạ
ợ
4.
Vi t m t ph
ng th c
ế
ộ
ươ
ứ main đ l p nên m t đ i t ng m i có ki u là Rational, đ t các bi n th c th c a
ể ậ
ộ ố ượ
ớ
ể
ặ
ế
ự
ể ủ
nó b ng giá tr c th , r i in đ i t
ng này ra.
ằ
ị ụ ể ồ
ố ượ
5. Đ n đây, b n đã có m t ch
ng trình t i thi u có th ch y th đ
c. Hãy ch y đ ki m tra nó, và g l i,
ế
ạ
ộ
ươ
ố
ể
ể ạ
ử ượ
ạ
ể ể
ỡ ỗ
n u c n.
ế ầ
6. Vi t m t constructor th hai cho l p này có nh n vào hai đ i s r i s d ng chúng đ kh i t o các bi n
ế
ộ
ứ
ớ
ậ
ố ố ồ ử ụ
ể
ở ạ
ế
th c th .
ự
ể