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

11.4 Thêm các constructor

Constructor có th đ

c ch ng ch t [xem thêm ph n "Quá t i"], cũng nh các ph

ng th c khác, theo

ể ượ

ư

ươ

nghĩa b n có th có nhi u constructor v i các tham s khác nhau. Java bi t rõ c n ph i kích ho t

ế

constructor nào b ng cách kh p nh ng tham s c a

ố ủ new v i các tham s c a constructor.

ố ủ

Vi c có constructor không nh n đ i s (nh trên) là hoàn toàn bình th

ng, cũng nh constructor nh n

ố ố

ư

ườ

ư

m t danh sách tham s gi ng h t v i danh sách các bi n th c th . Ch ng h n:

ố ố

ệ ớ

ế

public

Time(

int

hour,

int

minute,

double

second) {

this

.hour = hour;

this

.minute = minute;

this

.second = second;

}

Các tên và ki u c a nh ng tham s cũng gi ng v i tên và ki u c a các bi n th c th . T t c nh ng gì mà

ể ủ

ể ủ

ế

ể ấ ả

constructor này làm ch là sao chép thông tin t các tham s sang các bi n th c th .

ế

N u xem tài li u v

ế

ề Point và Rectangle, b n s th y r ng c hai l p này đ u có nh ng constructor ki u

ạ ẽ ấ ằ

nh trên. Vi c ch ng ch t constructor cho phép linh ho t t o nên đ i t

ng tr

c r i sau đó m i đi n

ư

ạ ạ

ố ượ

ướ ồ

vào ph n tr ng, ho c đ thu th p toàn b thông tin tr

c khi l p ra đ i t

ng.

ặ ể

ướ

ố ượ

Đi u này nghe thì có v không đáng quan tâm, song th c ra thì khác. Vi c vi t nh ng constructor là quá

ế

trình máy móc, bu n t . M t khi b n đã vi t đ

c hai constructor r i, b n s th y r ng mình có th vi t

ồ ẻ

ế ượ

ạ ẽ ấ ằ

ể ế

chúng nhanh chóng ch qua vi c trông vào danh sách các bi n th c th .

ế

11.5 T o nên đ i t

ng m i

ố ượ

M c dù trông gi ng nh ph

ng th c, song constructor không bao gi đ

c kích ho t tr c ti p. Thay vì

ư

ươ

ờ ượ

ế

v y, khi b n kích ho t

ạ new, h th ng s huy đ ng dung l ng b nh cho đ i t ng m i và kích ho t

ệ ố

ượ

ố ượ

constructor này.
Ch

ng trình sau gi i thi u hai cách làm đ l p thành và kh i t o các đ i t

ng

ươ

ể ậ

ở ạ

ố ượ Time:

class

Time {

int

hour, minute;

double

second;

public

Time() {

this

.hour = 0;

this

.minute = 0;

this

.second = 0.0;

}

public

Time(

int

hour,

int

minute,

double

second) {

this

.hour = hour;

this

.minute = minute;

this

.second = second;

}

public static void

main(String[] args) {

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.