Đôi khi, tôi đã gặp những trường hợp học sinh không hiểu được logic của sự tương tác giữa các phương pháp. Trong một trong những câu hỏi cho nhiệm vụ, đoạn mã sau đã được đưa ra:
public class Solution {
public static void main(String[] args) {
System.out.println(convertCelsiusToFahrenheit(41));
}
public static double convertCelsiusToFahrenheit(int celsius) {
double TC = 41;
double TF = 9 / 5.0 * TC + 32;
return TF;
}
}
Trên thực tế, theo đoạn mã này, bất kể chúng ta truyền vào phương thức giá trị nào convertCelsiusToFahrenheit
, chúng ta sẽ luôn nhận được cùng một kết quả. Sự tương tác nên diễn ra như thế nào? Hãy tưởng tượng rằng có bạn. Bạn có một số tiền và muốn mua một chiếc console khi đã biết giá. Nhưng bạn đam mê học Java đến mức không có thời gian để mua một chiếc console.
public static void main(String[] args) {
Nhưng bạn có một người bạn có thời gian và thích đi dạo quanh các cửa hàng.
public static String friendVasya(int money) {
int price = 300;
Trong trường hợp này, tôi đã tạo một phương thức friendVasya
có kiểu trả về String
, thay vào đó bạn có thể đặt bất kỳ loại dữ liệu nào khác, tất cả phụ thuộc vào những gì cuối cùng bạn muốn nhận. Khi phương thức chạy, friendVasya
nó sẽ nhận được số tiền mà bạn chỉ định trong đối số ( int money
). Bạn của Vasya có thể có rất nhiều công việc hoặc nhu cầu riêng của anh ấy, chúng tôi sẽ mô tả tất cả những điều này trong phương pháp này friendVasya
, nhưng chúng tôi chỉ quan tâm đến việc liệu anh ấy có mua cho chúng tôi một chiếc máy chơi game hay không. Vậy hãy thêm tính năng này cho anh ấy nhé.
public static String friendVasya(int money){
int cash = money - price;
String purchase;
Và theo đó, có thể có đủ tiền, hoặc có thể không đủ. Hãy thực hiện các phản ứng khác nhau cho những tình huống này.
public static String friendVasya(int money){
int price = 300;
int cash = money - price;
String purchase;
if (cash>=0){
purchase = "Купил";}
else{
purchase = "Этого мало. Где деньги, Лебовски?";}
return String.format(purchase);}
Kết quả của việc gọi phương thức friendVasya
và chuyển tiền cho nó dưới dạng đối số tiền, chúng ta sẽ có thể mua một bảng điều khiển hoặc phát hiện ra rằng không có đủ tiền để mua. Tất cả những gì còn lại là thêm lệnh gọi phương thức này vào mã chương trình, cho biết bạn sẵn sàng chi bao nhiêu tiền cho bảng điều khiển /*trong trường hợp này sẽ là 500 */:
public static void main(String[] args) {
System.out.println(friendVasya(500));
Mã đầy đủ:
public class Game {
public static void main(String[] args) {
System.out.println(friendVasya(500));
}
public static String friendVasya(int money){
int price = 300;
int cash = money - price;
String purchase;
if (cash>=0){
purchase = "Купил";}
else{
purchase = "Этого мало. Где деньги, Лебовски?";}
return String.format(purchase);
}
}
Trên thực tế, bản chất của tất cả mã này là:
- Khởi chạy
main
và kích hoạt phương thứcSystem.out.println
// Muốn có bàn điều khiển, gặp một người bạn; - đã thông qua một đối số
int money = 500
// Đã chuyển tiền cho bạn bè; - khởi chạy phương thức
friendVasya
và xử lý đối sốint money
nhận được từ phương thứcmain
// Vasya đến cửa hàng và cố gắng mua một hộp giải mã tín hiệu số với số tiền đã cho; - quay
String purchase
lại phương thứcmain
dưới dạng đối số được truyềnreturn
cho phương thứcprintln
// Vasya báo cáo liệu anh ta có thực hiện thành công việc này hay không.
GO TO FULL VERSION