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

Đ bi u di n ti p kĩ thu t bao b c, ta hãy l y đo n mã l nh cu i m c tr

c r i b c nó vào trong m t

ể ể

ế

ở ố

ướ ồ ọ

ph

ng th c:

ươ

public static void

printMultTable() {

int

i = 1;

while

(i <= 6) {

printMultiples(i); i = i + 1;

}

}

Quá trình mà tôi hi n đang gi i thi u đ

c g i là

ượ ọ

bao b c và khái quát hóa

. Ta phát tri n mã l nh

b ng cách vi t riêng nh ng dòng l nh vào

ế

main ho c vào ph

ng th c khác. Khi mã l nh này th c hi n

ươ

đ

c, ta l y l i nó r i b c vào m t ph

ng th c. R i b n khái quát hóa ph

ng th c b ng cách b sung

ượ

ấ ạ

ồ ọ

ươ

ồ ạ

ươ

ứ ằ

các tham s .

Lúc m i l p trình, đôi khi b n không bi t cách chia ch

ng trình thành các ph

ng th c. Quy trình trên

ớ ậ

ế

ươ

ươ

giúp b n thi t k trong khi l p trình.

ế ế

7.7 Các bi n đ a ph

ng

ế

ươ

Có th b n t h i b ng cách nào mà ta dùng đ

c cùng m t bi n,

ể ạ ự ỏ ằ

ượ

ế i, c

trong printMultiples l n

ẫ printMultTable. Ch ng ph i nó s gây r c r i khi m t trong hai ph ng th c

ắ ố

ươ

thay đ i giá tr c a bi n sao?

ị ủ

ế

L i gi i đáp cho c hai câu h i trên đ u là không,

vì i trong printMultiples và i trong printMultTable không ph i cùng m t bi n. Chúng có cùng tên g i,

ế

nh ng không tham chi u đ n cùng v trí l u tr , và vi c thay đ i m t bi n này s không nh h

ng gì

ư

ế

ế

ư

ế

ưở

t i bi n kia.

ế

Nh ng bi n đ

c t o ra bên trong ph n đ nh nghĩa ph

ng th c đ

c g i là

ế

ượ ạ

ươ

ứ ượ ọ

bi n đ a ph

ng

ế

ươ , vì

chúng ch t n t i bên trong ph

ng th c đó. B n không th truy c p bi n đ a ph

ng t ngoài ph

ng

ỉ ồ ạ

ươ

ế

ươ

ươ

th c “ch ” c a nó, và b n có th tùy ý đ t nhi u bi n cùng tên, mi n là chúng không ph i trong cùng

ủ ủ

ế

m t hàm.

M c dù đi u này có th gây nh m l n, song có nh ng lí do thích đáng đ s d ng l i các tên g i. Ch ng

ể ử ụ

h n, các tên

i, j và k th

ng đ

c dùng làm bi n l p. N u b n tránh dùng chúng trong m t ph

ng th c

ườ

ượ

ế ặ

ế

ươ

ch vì b n đã dùng chúng n i khác, thì ch

ng trình vi t ra s khó đ c h n.

ở ơ

ươ

ế

ọ ơ

7.8 Nói thêm v khái quát hóa

Xét m t ví d khác v khái quát hóa. Hãy hình dung r ng b n

ạ mu n có m t ch ng trình đ in ra b ng

ươ

tính nhân v i kích th

c b t kì, ch không ch 6 ×

ướ ấ

6. B n có th thêm m t tham s vào

printMultTable:

public static void

printMultTable(

int

high) {

int

i = 1;

while

(i <= high) {

printMultiples(i);

i = i + 1;

}

}

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.