class
Time {
int
hour, minute;
double
second;
}
Đo n mã này t b n thân nó đã là l i khai báo l p h p l . S đ tr ng thái cho m t đ i t
ng
ạ
ự ả
ờ
ớ
ợ ệ ơ ồ ạ
ộ ố ượ Time s
ẽ
trông nh sau:
ư
Sau khi khai báo các bi n th c th , b
c ti p theo là đ nh nghĩa m t constructor cho l p m i này.
ế
ự
ể ướ
ế
ị
ộ
ớ
ớ
11.3 Constructor
Các constructor có nhi mv kh i t o các bi n th c th . Cú pháp c a constructor cũng gi ng nh c a các
ệ
ụ
ở ạ
ế
ự
ể
ủ
ố
ư ủ
ph
ng th c khác, tr ba đi m sau:
ươ
ứ
ừ
ể
•
Tên c a constructor ph i gi ng nh tên l p.
ủ
ả
ố
ư
ớ
•
Constructor không có ki u tr v và cũng không có giá tr tr v .
ể
ả ề
ị ả ề
•
T khoá
ừ
static đ
c b qua.
ượ ỏ
Sau đây là m t ví d cho l p
ộ
ụ
ớ Time:
public
Time() {
this
.hour = 0;
this
.minute = 0;
this
.second = 0.0;
}
ch mà b n trông đ i m t ki u tr v , gi a
Ở ỗ
ạ
ợ
ộ
ể
ả ề
ữ public and Time, l i không có gì c . Đi u đó cho th y cách
ạ
ả
ề
ấ
mà chúng ta (và trình biên d ch n a) có th phân bi t đ
c r ng đây là m t constructor.
ị
ữ
ể
ệ ượ ằ
ộ
Constructor này không nh n tham s nào. M i dòng c a constructor kh i t o m t bi n th c th cho
ậ
ố
ỗ
ủ
ở ạ
ộ
ế
ự
ể
m t giá tr m c đ nh (trong tr
ng h p này là n a đêm). Cái tên
ộ
ị ặ ị
ườ
ợ
ử
this là m t t khóa đ c bi t đ tham
ộ ừ
ặ
ệ ể
chi u t i đ i t
ng mà ta đang t o nên. B n có th dùng
ế ớ ố ượ
ạ
ạ
ể
this theo cách gi ng nh dùng tên c a b t kì
ố
ư
ủ
ấ
đ i t
ng nào khác. Ch ng h n, b n có th đ c và ghi các bi n th c th c a
ố ượ
ẳ
ạ
ạ
ể ọ
ế
ự
ể ủ this, và cũng truy n
ề
đ
c
ượ this v i vai trò tham s đ n nh ng ph ng th c khác.
ớ
ố ế
ữ
ươ
ứ
Nh ng b n không khai báo cái
ư
ạ
this này và cũng không th gán giá tr cho nó.
ể
ị
this đ
c t o b i h th ng;
ượ ạ
ở ệ ố
t t c nh ng gì b n ph i làm đó là kh i t o các bi n th c th c a nó.
ấ ả
ữ
ạ
ả
ở ạ
ế
ự
ể ủ
M t l i th
ng g p khi vi t ra constructor là vi c đ a câu l nh
ộ ỗ
ườ
ặ
ế
ệ ư
ệ return vào cu i. Hãy ki m ch , tránh
ố
ề
ế
làm vi c này.
ệ