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

Ta bi t r ng các lân c n đ u là nh ng

ế ằ

ữ Actor, song l i không bi t ki u c a chúng là gì: t ng lân c n có th

ế

ể ủ

là Bug, Rock, v.v. Đ tìm t ng đá (Rock), ta s d ng toán t

ử ụ

ử instanceof, v n đ ki m tra xem li u m t

ể ể

đ i t

ng có là th c th c a m t l p hay không.

ố ượ

ể ủ

ộ ớ

for

(Actor actor : neighbors) {

if

(actor

instanceof

Rock) {

actor.setColor(Color.blue);

}

}

Đ làm cho toàn b ho t đ ng đ

c, ta c n ph i nh p nh ng l p c n dùng đ n:

ạ ộ

ượ

ớ ầ

ế

import

info.gridworld.actor.Actor;

import

info.gridworld.actor.Bug;

import

info.gridworld.actor.Rock;

import

info.gridworld.grid.Grid;

import

info.gridworld.grid.Location;

import

java.awt.Color;

import

java.util.ArrayList;

16.2 Giao di n

GridWorld cũng s d ng các

ử ụ

giao di n

c a Java, b i v y tôi mu n gi i thích ý nghĩa c a chúng. “Giao

ở ậ

di n” có nhi u nghĩa trong nh ng ng c nh khác nhau, nh ng trong Java, thu t ng này dùng đ ch

ữ ả

ư

ể ỉ

m t đ c đi m c th c a ngôn ng : giao di n là m t l i đ nh nghĩa l p mà trong đó các ph

ng th c

ộ ặ

ụ ể ủ

ộ ờ ị

ươ

không có ph n thân.

Trong l i đ nh nghĩa l p thông th

ng, m i ph

ng th c có m t nguyên m u và m t ph n thân (xem

ờ ị

ườ

ươ

M c

ụ 8.5). Nguy n m u còn đ c g i là

ượ ọ

ph n

ầ quy đ nh

b i nó quy đ nh tên, các thông s , và ki u tr l i

ả ạ

c a ph

ng th c đó. Ph n thân đ

c g i là

ươ

ượ ọ

ph n th c hi n

b i nó th c hi n ph n quy đ nh trên.

Trong m t giao di n Java, các ph

ng th c không có ph n thân, b i v y giao di n ch quy đ nh các

ươ

ở ậ

ph

ng th c mà không th c hi n chúng.

ươ

Ch ng h n,

ạ java.awt.Shape là m t giao di n v i các nguyên m u cho

contains, intersects, cùng m t s

ộ ố

ph

ng th c khác.

ươ

java.awt.Rectangle cung c p ph n th c hi n c a nh ng ph

ng th c này, b i v y ta

ệ ủ

ươ

ở ậ

nói r ng “Rectangle th c hi n Shape.” Th c ra, dòng đ u tiên c a l i đ nh nghĩa l p

ủ ờ ị

ớ Rectangle là:

public class

Rectangle

extends

Rectangle2D

implements

Shape, Serializable

Rectangle th a k các ph

ng th c t

ừ ế

ươ

ứ ừ Rectangle2D và cung c p ph n th c hi n cho các ph ng th c

ươ

trong Shape và Serializable.
Trong GridWorld, l p Location th c hi n giao di n

ệ java.lang.Comparable b ng cách cung

c p

ấ compareTo, v n t ng t v i

ố ươ

ự ớ compareCards M c

ở ụ 13.5. GridWorld cũng đ nh nghĩa m t giao di n

m i,

ớ Grid, đ quy đ nh các ph ng th c mà m t

ươ

ộ Grid c n ph i cung c p. Đ ng th i, GridWorld cũng

bao g m hai ph n th c hi n,

ệ BoundedGrid và UnboundedGrid.

Quy n h

ng d n có dùng ch vi t t t

ướ

ữ ế ắ API, mà ch đ y đ là “application programming interface”

ữ ầ

(giao di n l p trình ng d ng). API là m t t p h p các ph

ng thwusc dành s n cho b n, ng

i l p

ệ ậ

ộ ậ

ươ

ườ ậ

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.