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

Ch

ng 6: Ph

ng th c tr l i giá

ươ

ươ

ả ạ

tr

Tr v

ở ề M c l c

ụ ụ cu n sách

6.1 Nh ng giá tr đ

c tr l i

ị ượ

ả ạ

M t s ph

ng th c mà ta đã dùng, nh các hàm toán h c, có tr l i k t qu . Nghĩa là, hi u ng t vi c

ộ ố

ươ

ư

ả ạ ế

ệ ứ

ừ ệ

kích ho t ph

ng th c là t o ra m t giá tr m i mà ta th

ng gán nó cho m t bi n ho c dùng nh m t

ươ

ị ớ

ườ

ế

ư ộ

ph n h p nên m t bi u th c l n h n. Ch ng h n:

ứ ớ

ơ

double

e = Math.exp(1.0);

double

height = radius * Math.sin(angle);

Nh ng cho đ n gi t t c nh ng ph

ng th c mà t tay vi t đ u là ph

ng th c

ư

ế

ờ ấ ả

ươ

ế ề

ươ

r ng

; theo nghĩa

nh ng ph

ng th c này không tr l i giá tr nào. Khi b n kích ho t m t ph

ng th c r ng, nó th

ng

ươ

ả ạ

ươ

ứ ố

ườ

ch t đ

c đ t trên m t dòng mà không có l nh gán nào c :

ỉ ự ượ ặ

countdown(3);

nLines(3);

Trong ch

ng này ta vi t nh ng ph

ng th c tr l i thông tin, mà tôi g i là ph

ng th c

ươ

ế

ươ

ả ạ

ươ

tr l i

ả ạ giá trị.

Ví d đ u tiên là

ụ ầ

area, m t ph

ng th c nh n vào tham s là m t

ươ

ộ double, r i tr l i

ả ạ di n tích c a m t

hình tròn v i bán kính cho tr

c:

ướ

public static double

area(

double

radius) {

double

area = Math.PI * radius * radius;

return

area;

}

Đi u đ u tiên mà ta nh n th y là đo n đ u c a đ nh nghĩa ph

ng th c đã khác đi. Thay vì

ầ ủ

ươ

public static

void, v n đ ch m t ph

ng th c r ng, ta th y

ể ỉ ộ

ươ

ứ ỗ

ấ public static double, có nghĩa là giá tr tr v t ph ng

ị ả ề ừ

ươ

th c này là m t

ộ double. Tôi v n ch a gi i thích ý nghĩa c a

ư

ủ public static, song b n hãy kiên nh n.

Dòng cu i là m t d ng m i c a câu l nh

ộ ạ

ớ ủ

ệ return trong đó bao g m m t giá tr tr l i. Câu l nh này có

ị ả ạ

nghĩa là “t ph

ng th c này hãy l p t c tr v và dùng bi u th c kèm theo đây làm giá tr tr l i.” Bi u

ươ

ậ ứ

ở ề

ị ả ạ

th c mà b n đ t ra có th ph c t p tùy ý, vì v y ta có th vi t ph

ng th c sau m t cách g n h n:

ứ ạ

ể ế

ươ

ơ

public static double

area(

double

radius) {

return

Math.PI * radius * radius;

}

M t khác, nh ng

bi n t m th i

ế

như area th ng giúp cho vi c g l i đ c d dàng h n.

ườ

ệ ỡ ỗ ượ ễ

ơ Trong c i hai

tr

ng h p, ki u c a bi u th c trong l nh

ườ

ể ủ

ệ return ph i kh p v i ki u c a ph ng th c. Nói cách khác,

ể ủ

ươ

khi b n khai báo r ng ki u tr l i là

ả ạ

double, b n đã cam k t r ng ph

ng th c này cu i cùng s t o ra

ế ằ

ươ

ẽ ạ

m t

ộ double. N u b n th

ế

ử return mà không kèm theo bi u th c nào, ho c kèm theo bi u th c nh ng sai

ư

ki u, thì trình biên d ch s r y la b n.

ẽ ầ

Đôi khi c n ph i có nhi u l nh return, m i l nh đ t m t nhánh c a l nh đi u ki n:

ề ệ

ỗ ệ

ặ ở ộ

ủ ệ

public static double

absoluteValue(

double

x) {

if

(x < 0) {

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.