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

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.