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

Dòng ti p theo đ nh nghĩa m t

ế

constructor; đây là m t ph ng th c đ c bi t đ kh i t o bi n th c

ươ

ứ ặ

ệ ể

ở ạ

ế

th . Khi b n t o nên m t

ạ ạ

ộ Bug b ng cách kích ho t

ạ new, Java s kích ho t constructor này.

Tham s cho constructor này là chi u dài c nh.

Hành vi c a

ủ Bug đ c đi u khi n b i ph ng th c

ượ

ươ

ứ act. Sau đây là ph ng th c

ươ

ứ act c a

ủ BoxBug:

public void

act() {

if

(steps < sideLength && canMove()) {

move();

steps++;

}

else

{

turn();

turn();

steps = 0;

}

}

N u

ế BoxBug có th di chuy n, và ch a th c hi n đ s b c đi theo yêu c u, thì nó s di chuy n và

ư

ủ ố ướ

đ ng th i tăng bi n

ế steps.

N u nó đ ng ph i t

ng ho c đi h t m t c nh c a h p, thì con b s quay 90 đ sang ph i đ ng th i

ế

ả ườ

ế

ộ ạ

ọ ẽ

ả ồ

ch nh bi n

ế steps v 0.

Hãy ch y ch

ng trình và xem nó làm gì. B n có th y đ

c con b có hành vi nh d ki n không?

ươ

ượ

ư ự ế

10.1 Con m i

Tôi đã vi t ra m t l p có tên

ế

ộ ớ

Termite đ m r ng

ể ở ộ Bug và b sung kh năng t ng tác v i nh ng bông

ươ

hoa. Đ ch y đ

c l p này, b n hãy t i v nh ng file sau r i nh p chúng vào môi tr

ng phát tri n đang

ể ạ

ượ ớ

ả ề

ườ

dùng:
http://thinkapjava.com/code/Termite.java
http://thinkapjava.com/code/Termite.gif
http://thinkapjava.com/code/TermiteRunner.java
http://thinkapjava.com/code/EternalFlower.java
Vì Termite m r ng

ở ộ Bug, t t c nh ng ph ng th c c a

ấ ả

ươ

ứ ủ Bug đ u ho t đ ng đ c v i các

ạ ộ

ượ ớ

Termite.

Nh ng

ư Termite có thêm nh ng ph ng th c khác mà

ươ

Bug không có.

/**

* Trả lại true nếu con mối có mang bông hoa.

*/

public boolean

hasFlower();

/**

* Trả lại true nếu con mối quay mặt về phía bông hoa.

*/

public boolean

seeFlower();

/**