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

}

Các bi n t m th i

ế ạ

radius

area

có ích cho vi c phát tri n và g l i ch

ng trình, nh ng m t khi

ỡ ỗ

ươ

ư

ch

ng trình đã ho t đ ng t t, ta có th rút g n nó l i b ng cách k t h p các l nh kích ho t ph

ng

ươ

ạ ộ

ạ ằ

ế ợ

ươ

th c:

public static double

circleArea (

double

xc,

double

yc,

double

xp,

double

yp) {

return

area(distance(xc, yc, xp, yp));

}

6.4 Quá t i toán t

Có th b n đã nh n th y r ng c

ể ạ

ấ ằ

ả circleArea l n

ẫ area đ u th c hi n nh ng tính năng t ng t —tìm di n

ươ

tích hình tròn—nh ng nh n các tham s khác nhau. V i

ư

ớ area, chúng ta ph i cung c p bán kính; còn

v i

ớ circleArea ta cung c p hai đi m.

N u hai ph

ng th c cùng làm m t vi c, l t nhiên là ta đ t chung m t tên cho c hai. Vi c có nhi u

ế

ươ

ệ ẽ ự

ph

ng th c cùng tên, v n đ

c g i là

ươ

ượ ọ

quá t i

(overloading), là đi u h p l trong Java

ợ ệ

mi n sao các

d ng ph ng th c ph i nh n nh ng tham s khác nhau

ươ

. Nh v y ta có th đ i tên

ư ậ

ể ổ

circleArea:

public static double

area (

double

x1,

double

y1,

double

x2,

double

y2) {

return

area(distance(xc, yc, xp, yp));

}

Khi b n kích ho t m t ph

ng th c quá t i, Java s bi t đ

c r ng b n mu n dùng d ng ph

ng th c

ươ

ẽ ế ượ ằ

ươ

nào, qua vi c xem xét các đ i s mà b n cung c p. N u b n vi t:

ố ố

ế

ế

double

x = area(3.0);

thì Java s đi tìm m t ph

ng th c mang tên

ươ

area mà nh n đ i s là m t

ố ố

ộ double; do đó nó s dùng

d ng th nh t, t c là hi u đ i s nh m t bán kính. Còn n u b n vi t:

ấ ứ

ố ố

ư ộ

ế

ế

double

x = area(1.0, 2.0, 4.0, 6.0);

thì Java s dùng d ng th hai c a

ủ area. Và l u ý r ng th c ra d ng

ư

ạ area th hai đã kích ho t d ng th

ạ ạ

nh t.

Nhi u ph

ng th c Java đ

c qua t i, nghĩa là có nhi u d ng trong đó ch p nh n s l

ng ho c ki u

ươ

ượ

ậ ố ượ

tham s khác nhau. Ch ng h n, có nh ng d ng

ạ print và println ch p nh n m t tham s thu c ki u b t

kì. Trong l p Math, có m t d ng

ộ ạ abs làm vi c v i

ệ ớ double, đ ng th i có m t d ng dành cho

ộ ạ

int.

M c dù quá t i là m t đ c đi m h u ích, so b n hãy c n th n khi dùng. B n có th th t s c m th y lú

ộ ặ

ể ậ ự ả

l n n u c g ng g l i m t d ng ph

ng th c trong khi b n không ch ý kích ho t nó, mà là m t

ế ố ắ

ỡ ỗ

ộ ạ

ươ

ph

ng th c khác cùng tên!

ươ

Và đi u này làm tôi nh đ n m t quy t c then ch t trong g l i:

ớ ế

ỡ ỗ hãy đ m b o ch c r ng phiên b n

ch

ng trình b n c n g l i chính là phiên b n ch

ng trình b n đang ch y!

ươ

ỡ ỗ

ươ

M t ngày nào đó có th b n s th y mình đang loay hoay s a đi s a l i ch

ng trình, và c th y k t qu

ể ạ ẽ ấ

ử ạ

ươ

ứ ấ ế

v n y nguyên nh v y khi ch y l i. Đây là m t tín hi u c nh báo r ng hi n b n không ch y phiên b n

ư ậ

ạ ạ

ệ ả

ch

ng trình nh đang nghĩ. Đ ki m tra l i, b n hãy th thêm m t câu l nh

ươ

ư

ể ể

ệ print (ch ng quan tr ng là

in th gì) và xem ch

ng trình có bi u hi n t

ng ng hay khô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.