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

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

ơ

2

, 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 .