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

Ví d th hai là

ụ ứ

addTime, ph

ng th c tính t ng hai th i gian. Ch ng h n, n u bây gi là

ươ

ế

ờ 9:14:30, và

ng

i làm bánh c n 3 gi 35 phút, thì b n có th dùng

ườ

addTime đ hình dung ra khi nào bánh ra lò.

Sau đây là b n s th o c a ph

ng th c này; nó ch a th t đúng:

ả ơ ả ủ

ươ

ư

public static

Time addTime(Time t1, Time t2) {

Time sum =

new

Time();

sum.hour = t1.hour + t2.hour;

sum.minute = t1.minute + t2.minute;

sum.second = t1.second + t2.second;

return

sum;

}

M c dù ph

ng th c này tr l i m t đ i t

ng

ươ

ả ạ

ộ ố ượ Time, song nó không ph i là constructor. B n c n xem

ạ ầ

l i và so sánh cú pháp c a m t ph

ng th c d ng này v i cú pháp c a m t constructor, vì chúng d gây

ươ

ứ ạ

nh m l n.

Sau đây là m t ví d v cách dùng ph

ng th c. N u nh

ụ ề

ươ

ế

ư currentTime ch a th i gian hi n t i

ệ ạ

và breadTime ch a th i gian c n đ ng

i th n

ng bánh, thì b n có th dùng

ườ

ợ ướ

addTime đ hình dung

ra khi nào s n

ng xong bánh.

ẽ ướ

Time currentTime =

new

Time(9, 14, 30.0);

Time breadTime =

new

Time(3, 35, 0.0);

Time doneTime = addTime(currentTime, breadTime);

printTime(doneTime);

K t qu c a ch

ng trình,

ế

ả ủ

ươ

12:49:30.0, là đúng. M t khác, cũng có nh ng tr

ng h p mà k t qu không

ườ

ế

đúng. B n có đoán đ

c m t tr

ng h p nh v y không?

ượ

ườ

ư ậ

V n đ là ch ph

ng th c này không x lý đ

c tình hu ng khi s giây ho c s phút c ng l i v

t

ề ở ỗ

ươ

ượ

ặ ố

ạ ượ

quá 60. Trong tr

ng h p đó, ta ph i “nh ” s giây còn d vào c t s phút, ho c nh s phút d vào c t

ườ

ớ ố

ư

ộ ố

ớ ố

ư

gi .

Sau đây là m t d ng đúng c a ph

ng th c này.

ộ ạ

ươ

public static

Time addTime(Time t1, Time t2) {

Time sum =

new

Time();

sum.hour = t1.hour + t2.hour;

sum.minute = t1.minute + t2.minute;

sum.second = t1.second + t2.second;

if

(sum.second >= 60.0) {

sum.second -= 60.0;

sum.minute += 1;

}

if

(sum.minute >= 60) {

sum.minute -= 60;

sum.hour += 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.