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

// sắp xếp các phần bài này bằng mergesort

// trộn ghép lại hai nửa rồi trả lại kết quả

}

Nh th

ng l , có hai cách nghĩ v ch

ng trình đ quy: B n có th nghĩ qua toàn b lu ng th c thi,

ư ườ

ề ươ

ộ ồ

hay b n có th d a vào “ni m tin” (xem M c

ể ự

ụ 6.9). Tôi đã xây d ng ví d này đ khuy n khích b n t

ế

ạ ư

duy theo ni m tin nh v y.

ư ậ

Khi d d ng

ử ụ sortDeck đ s p x p các ph n bài, b n không th y b thôi thúc ph i theo lu ng th c thi,

ể ắ

ế

ấ ị

ph i không? B n ch vi c gi s r ng nó ho t đ ng đ

c vì b n đã g l i cho nó r i. , t t c nh ng đi u

ỉ ệ

ả ử ằ

ạ ộ

ượ

ỡ ỗ

ồ Ồ ấ ả

mà b n đã làm cho

mergeSort tr nên đ quy là thay th m t thu t toán s p x p này v i thu t toán

ế ộ

ế

khác. Không có lý do gì đ đ c ch

ng trình khác đi c .

ể ọ

ươ

Th c ra, b n ph i nghĩ m t chút m i l p đ

c tr

ng h p c s đúng đ n và đ m b o r ng cu i cùng

ớ ậ

ượ

ườ

ợ ơ ở

ả ằ

b n s đ t đ n tr

ng h p c s này. Song ngoài đi u đó ra, vi c vi t nên phiên b n đ quy h n s

ạ ẽ ạ ế

ườ

ợ ơ ở

ế

ẳ ẽ

không còn v n đ n a. Chúc b n may m n!

ề ữ

14.7 Bi n l p

ế ớ

Đ n gi ta đã th y nh ng bi n đ a ph

ng, v n đ

c khai báo bên trong ph

ng th c, và bi n th c th ,

ế

ế

ươ

ượ

ươ

ế

v n đ

c khai báo l i đ nh nghĩa l p, th

ng đi tr

c các đ nh nghĩa ph

ng th c.

ượ

ở ờ ị

ườ

ướ

ươ

Các bi n đ a ph

ng đ

c t o nên khi m t ph

ng th c đ

c kích ho t và phá h y khi ph

ng th c k t

ế

ươ

ượ ạ

ươ

ứ ượ

ươ

ứ ế

thúc. Các bi n th c th đ

c t o nên khi b n t o nên m t đ i t

ng; các bi n này b phá h y khi đ i

ế

ể ượ ạ

ạ ạ

ộ ố ượ

ế

t

ng b thu h i rác b nh .

ượ

Bây gi là lúc bi t v

ế ề bi n l p

ế ớ . Gi ng nh bi n th c th , bi n l p đ c đ nh nghĩa trong m t l i đ nh

ư ế

ế ớ

ượ ị

ộ ờ ị

nghĩa l p tr

c nh ng đ nh nghĩa ph

ng th c, song chúng đ

c nh n di n b ng t khóa

ướ

ươ

ượ

static. Chúng

đ

c t o nên khi ch

ng trình kh i đ u và còn t n t i đ n t n khi ch

ng trình k t thúc.

ượ ạ

ươ

ở ầ

ồ ạ ế ậ

ươ

ế

B n có th tham chi u t i biên th c th t b t kì đâu bên trong l i khai báo l p. Nh ng bi n l p th

ng

ế ớ

ể ừ ấ

ế ớ

ườ

đ

c dùng đ l u các giá tr h ng s c n thi t nhi u ch .

ượ

ể ư

ị ằ

ố ầ

ế ở

L y ví d , sau đây là m t phiên b n c a

ả ủ Card trong đó suits và ranks là nh ng bi n l p:

ế ớ

class

Card {

int

suit, rank;

static

String[] suits = {

"Clubs"

,

"Diamonds"

,

"Hearts"

,

"Spades"

};

static

String[] ranks = {

"narf"

,

"Ace"

,

"2"

,

"3"

,

"4"

,

"5"

,

"6"

,

"7"

,

"8"

,

"9"

,

"10"

,

"Jack"

,

"Queen"

,

"King"

};

public static void

printCard(Card c) {

System.out.println(ranks[c.rank] +

" of "

+ suits[c.suit]);

}

}

Bên trong printCard ta có th tham chi u t i

ế ớ suits và ranks nh th chúng là các bi n đ a ph ng.

ư ể

ế

ươ

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.