Tr v
ở ề M c l c
ụ ụ cu n sách
ố
11.1 L i đ nh nghĩa l p và các ki u đ i t
ng
ờ ị
ớ
ể
ố ượ
Tr v t n M c
ở ề ậ
ụ 1.5 khi chúng ta đ nh nghĩa l p
ị
ớ Hello, ta đ ng th i t o nên m t ki u đ i t ng có
ồ
ờ ạ
ộ
ể
ố ượ
tên Hello. Ta không t o nên bi n nào thu c ki u
ạ
ế
ộ
ể Hello này, và cũng không dùng new đ t o ra đ i
ể ạ
ố
t
ng
ượ Hello nào, song vi c đó là hoàn toàn có th !
ệ
ể
Ví d đó ch ng có m y tác d ng minh h a, b i không lý gì đ ta t o ra m t đ i t
ng
ụ
ẳ
ấ
ụ
ọ
ở
ể
ạ
ộ ố ượ Hello nh v y, và
ư ậ
dù có t o nên thì cũng ch ng đ làm gì. Trong ch
ng này, ta s xét đ n nh ng đ nh nghĩa l p đ t o
ạ
ả
ể
ươ
ẽ
ế
ữ
ị
ớ
ể ạ
nên các ki u đ i t
ng
ể
ố ượ có ích.
Sau đây là nh ng ý t
ng quan tr ng nh t trong ch
ng:
ữ
ưở
ọ
ấ
ươ
•
Vi c đ nh nghĩa m t l p m i đ ng th i cũng t o nên m t đ i t
ng m i cùng tên.
ệ ị
ộ ớ
ớ ồ
ờ
ạ
ộ ố ượ
ớ
•
L i đ nh nghĩa l p cũng gi ng nh m t b n m u cho các đ i t
ng: nó quy đ nh nh ng bi n th c th
ờ ị
ớ
ố
ư ộ ả
ẫ
ố ượ
ị
ữ
ế
ự
ể
nào mà đ i t
ng đó ch a đ ng, và nh ng ph
ng th c nào có th ho t đ ng v i chúng.
ố ượ
ứ
ự
ữ
ươ
ứ
ể
ạ ộ
ớ
•
M i đ i t
ng thu c v m t ki u đ i t
ng nào đó; nh v y, nó là m t th c th c a m t l p nào đó.
ỗ ố ượ
ộ ề ộ
ể
ố ượ
ư ậ
ộ
ự
ể ủ
ộ ớ
•
Khi b n kích ho t
ạ
ạ new đ t o nên m t đ i t ng, Java kích ho t m t ph ng th c đ c bi t có tên
ể ạ
ộ ố ượ
ạ
ộ
ươ
ứ ặ
ệ
là constructor đ kh i t o các bi n th c th . B n c n cung c p m t ho c nhi u constructor trong l i
ể
ở ạ
ế
ự
ể ạ ầ
ấ
ộ
ặ
ề
ờ
đ nh nghĩa l p.
ị
ớ
•
Các ph
ng th c thao tác trên m t ki u đ
c đ nh nghĩa trong l i đ nh nghĩa l p cho ki u đó.
ươ
ứ
ộ
ể
ượ ị
ờ ị
ớ
ể
Sau đây là m t s v n đ v l i đ nh nghĩa l p:
ộ ố ấ
ề ề ờ ị
ớ
•
Tên l p (và do đó, tên c a ki u đ i t
ng) nên b t đ u bàng m t ch in, đ phân bi t chúng v i các
ớ
ủ
ể
ố ượ
ắ ầ
ộ
ữ
ể
ệ
ớ
ki u nguyên th y và nh ng tên bi n.
ể
ủ
ữ
ế
•
B n th
ng đ t m t l i đ nh nghĩa l p vào trong m i file, và tên c a file ph i gi ng nh tên c a l p,
ạ
ườ
ặ
ộ ờ ị
ớ
ỗ
ủ
ả
ố
ư
ủ ớ
v i ph n m r ng
ớ
ầ
ở ộ .java. Ch ng h n, l p
ẳ
ạ
ớ Time đ c đ nh nghĩa trong file có tên
ượ ị
Time.java.
•
b t kì ch
ng trình nào, luôn có m t l p đ
c giao làm
Ở ấ
ươ
ộ ớ
ượ
l p kh i đ ng
ớ
ở ộ . L p kh i đ ng ph i ch a
ớ
ở ộ
ả
ứ
m t ph
ng th c mang tên
ộ
ươ
ứ
main, đó là n i mà vi c th c thi ch
ng trình b t đ u. Các l p khác cũng
ơ
ệ
ự
ươ
ắ ầ
ớ
có
th
ể ch a ph ng th c cùng tên
ứ
ươ
ứ
main, song ph
ng th c đó s không đ
c th c thi t đ u.
ươ
ứ
ẽ
ượ
ự
ừ ầ
Khi đã nêu nh ng v n đ này r i, ta hãy xét m t ví d v l p do ng
i dùng đ nh nghĩa, l p
ữ
ấ
ề
ồ
ộ
ụ ề ớ
ườ
ị
ớ Time.
11.2 Time
M t đ ng l c chung cho vi c t o nên ki u đ i t
ng, đó là đ gói g n nh ng d li u liên quan vào trong
ộ ộ
ự
ệ ạ
ể
ố ượ
ể
ọ
ữ
ữ ệ
m t đ i t
ng đ ta có th coi nh m t đ n v duy nh t. Ta đã g p hai ki u nh v y, đó
ộ ố ượ
ể
ể
ư ộ ơ
ị
ấ
ặ
ể
ư ậ
là Point và Rectangle.
M t ví d khác, mà ta s t tay l p nên, là
ộ
ụ
ẽ ự
ậ
Time, đ bi u di n gi đ ng h . D li u đ
c gói trong m t
ể ể
ễ
ờ ồ
ồ ữ ệ
ượ
ộ
đ i t
ng Time bao g m có s gi , s phút, và s giây. B i m i đ i t
ng
ố ượ
ồ
ố ờ ố
ố
ở
ỗ ố ượ Time đ u ch a nh ng d li u
ề
ứ
ữ
ữ ệ
này, nên ta c n bi n th c th đ l u gi chúng.
ầ
ế
ự
ể ể ư
ữ
B
c đ u tiên là xác đ nh xem t ng bi n ph i thu c ki u gì. D
ng nh rõ ràng là
ướ ầ
ị
ừ
ế
ả
ộ
ể
ườ
ư
hour (gi )
ờ
và minute (phút) đ u ph i là nh ng s nguyên. Đ cho v n đ đ
c thú v h n, ta hãy đ t
ề
ả
ữ
ố
ể
ấ
ề ượ
ị ơ
ặ second (giây)
là m t
ộ double.
Các bi n th c th đ
c đ nh nghĩa đo n đ u c a l i khai báo l p, bên ngoài b t kì l i khai báo ph
ng
ế
ự
ể ượ ị
ở
ạ
ầ ủ ờ
ớ
ấ
ờ
ươ
th c nào khác, nh sau:
ứ
ư