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:

ượ

ế

ế ớ

ộ ố ượ

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.