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

System.out.println(

"("

+ p.x +

", "

+ p.y +

")"

);

}

Ph

ng th c này nh n m t đi m làm đ i s r i in nó ra d

i đ nh d ng tiêu chu n. N u b n kích ho t

ươ

ố ố ồ

ướ ị

ế

printPoint(blank), nó s in ra

(3, 4). Th c t là Java đã có s n m t ph

ng th c đ in ra các

ự ế

ươ

ứ ể

Point. N u

ế

kích ho t

ạ System.out.println(blank), b n s nh n đ c

ạ ẽ

ượ

java.awt.Point[x=3,y=4]

Đây là đ nh d ng tiêu chu n mà Java dùng đ in các đ i t

ng. Nó in ra tên c a ki u d li u, ti p theo là

ố ượ

ữ ệ

ế

các tên và giá tr c a nh ng bi n th c th .

ị ủ

ế

M t ví d th hai là ta có th vi t l i ph

ng th c

ụ ứ

ể ế ạ

ươ

ứ distance M c

ở ụ 6.2 đ nó nh n hai

Point làm tham s

thay vì b n

ố double.

public static double

distance(Point p1, Point p2) {

double

dx = (

double

)(p2.x - p1.x);

double

dy = (

double

)(p2.y - p1.y);

return

Math.sqrt(dx*dx + dy*dy);

}

Các phép đ i ki u d li u đây đ u không th t s c n thi t. Tôi ch vi t vào đ t nh c r ng các bi n

ữ ệ ở

ậ ự ầ

ế

ỉ ế

ể ự

ắ ằ

ế

th c th trong m t

ộ Point đ u là các s nguyên.

9.5 Hình ch nh t

Rectangle (hình ch nh t) cũng gi ng nh các đi m, ch khác r ng chúng có b n bi n th c

ư

ế

th :

ể x, y, width (b r ng) và

ề ộ

height (chi u cao). Ngoài đi u này ra thì nh ng th còn l i v n y nguyên.

ạ ẫ

Ví d sau đây t o nên m t đ i t

ng

ộ ố ượ Rectangle r i khi n

ế box tham chi u đ n nó.

ế

ế

Rectangle box =

new

Rectangle(0, 0, 100, 200);

Hình v này mô t hi u ng c a l nh gán nêu trên.

ả ệ ứ

ủ ệ

N u in

ế

box ra, b n nh n đ

c

ượ

java.awt.Rectangle[x=0,y=0,width=100,height=200]

M t l n n a, đây là k t qu c a m t ph

ng th c Java v n bi t cách in nh ng đ i t

ng

ộ ầ

ế

ả ủ

ươ

ế

ố ượ Rectangle.

9.6 Đ i t

ng v i vai trò là ki u đ

c tr l i

ố ượ

ượ

ả ạ

B n có th vi t nh ng ph

ng th c tr l i đ i t

ng. Ch ng h n,

ể ế

ươ

ả ạ ố ượ

ạ findCenter l y m t

ộ Rectangle làm đ i

s r i tr l i m t

ố ồ ả ạ

ộ Point có ch a to đ c a tâm

ạ ộ ủ

Rectangle:

public static

Point findCenter(Rectangle box) {

int

x = box.x + box.width/2;

int

y = box.y + box.height/2;