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

return new

Point(x, y);

}

L u ý r ng b n có th dùng

ư

new đ t o nên m t đ i t

ng m i, và r i l p t c dùng k t qu này làm giá

ể ạ

ộ ố ượ

ồ ậ ứ

ế

tr tr l i.

ị ả ạ

9.7 Đ i t

ng có tính thay đ i

ố ượ

B n có th thay đ i n i dung c a m t đ i t

ng b ng cách vi t l nh gán cho m t trong s nh ng bi n

ổ ộ

ộ ố ượ

ế ệ

ế

th c th c a nó. Ch ng h n, đ “d ch chuy n” m t hình ch nh t mà không làm thay đ i kích th

c c a

ể ủ

ể ị

ướ ủ

nó, b n có th ch nh s a các giá tr

ể ỉ

ị x và y:

box.x = box.x + 50;

box.y = box.y + 100;

K t qu đ

c bi u di n trên hình:

ế

ả ượ

Ta có th bao b c đo n mã l nh trên vào m t ph

ng th c r i khái quát hoá nó đ d ch chuy n hình

ươ

ứ ồ

ể ị

ch nh t đi m t kho ng cách b t kì:

public static void

moveRect(Rectangle box,

int

dx,

int

dy) {

box.x = box.x + dx;

box.y = box.y + dy;

}

Các bi n

ế dx và dy ch đ nh kho ng cách d ch chuy n hình theo t ng h ng riêng. Vi c kích ho t ph ng

ỉ ị

ướ

ươ

th c này có nh h

ng làm thay đ i

ưở

ổ Rectangle đ c truy n vào d i d ng tham s .

ượ

ướ ạ

Rectangle box =

new

Rectangle(0, 0, 100, 200);

moveRect(box, 50, 100);

System.out.println(box);

s in ra

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

Vi c thay đ i các đ i t

ng b ng cách truy n chúng làm tham s cho các ph

ng th c m c dù có th

ố ượ

ươ

h u ích, song nó cũng có th gây khó khăn cho vi c g l i vì không ph i lúc nào cũng d th y là vi c

ệ ỡ ỗ

ễ ấ

kích ho t m t ph

ng th c có thay đ i các đ i s c a nó hay không. V sau, tôi s th o lu n nh ng u

ươ

ố ố ủ

ẽ ả

ư

nh

c đi m c a phong cách l p trình này.

ượ

Java có các ph

ng th c thao tác v i Point và Rectangle. B n có th đ c tài li u

ươ

ể ọ

http://download.oracle.com/javase/6/docs/api/java/awt/Point.html http://download.oracle.com
/javase/6/docs/api/java/awt/Rectangle.html.
Ch ng h n,

ạ translate có hi u ng t a nh

ệ ứ

ư moveRect, song thay vì ph i truy n Rectangle làm đ i s , b n

ố ố ạ

l i dùng kí pháp d u ch m:

box.translate(50, 100);

9.8 Aliasing

Hãy nh r ng khi b n gán m t đ i t

ng vào cho m t bi n, b n đang gán m t

ớ ằ

ộ ố ượ

ế

tham chi u

ế đ n đ i

ế

t

ng. Hoàn toàn có th có nhi u bi n cùng tham chi u t i m t đ i t

ng. Ch ng h n, đo n mã sau:

ượ

ế

ế ớ

ộ ố ượ