Beberapa kali, saya sudah terjumpa saat pelajar tidak memahami logik interaksi antara kaedah. Dalam salah satu soalan untuk tugasan, kod berikut diberikan:
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;
}
}
Malah, mengikut kod ini, tidak kira apa nilai yang kita berikan kepada kaedah convertCelsiusToFahrenheit
, kita akan sentiasa mendapat output yang sama. Bagaimanakah interaksi harus berlaku? Mari kita bayangkan bahawa ada anda. Anda mempunyai sedikit wang dan ingin membeli konsol, mengetahui harganya. Tetapi anda sangat berminat untuk mempelajari Java sehingga anda tidak mempunyai masa untuk membeli konsol.
public static void main(String[] args) {
Tetapi anda mempunyai rakan yang mempunyai masa dan suka merayau-rayau di sekitar kedai.
public static String friendVasya(int money) {
int price = 300;
Dalam kes ini, saya mencipta kaedah friendVasya
dengan jenis pulangan String
, sebaliknya anda boleh menetapkan mana-mana jenis data lain, semuanya bergantung pada apa yang akhirnya anda ingin dapatkan. Apabila kaedah berjalan, friendVasya
ia akan menerima jumlah wang yang anda tentukan dalam hujah ( int money
). Rakan Vasya mungkin mempunyai banyak urusan atau keperluannya sendiri, kami akan menerangkan semua ini dalam kaedah friendVasya
, tetapi kami hanya berminat sama ada dia akan membeli kami konsol. Jadi mari kita tambahkan ciri ini kepadanya.
public static String friendVasya(int money){
int cash = money - price;
String purchase;
Dan dengan itu, mungkin ada cukup wang, atau mungkin tidak cukup. Mari kita laksanakan respons yang berbeza untuk situasi ini.
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);}
Hasil daripada memanggil kaedah friendVasya
dan menyampaikan wang kepadanya dalam bentuk hujah wang, kita akan dapat membeli konsol atau mengetahui bahawa tidak ada wang yang cukup untuk pembelian. Apa yang tinggal ialah menambah panggilan ke kaedah ini dalam kod program, menunjukkan berapa banyak wang yang anda sanggup berikan untuk konsol /*dalam kes ini ia akan menjadi 500 */:
public static void main(String[] args) {
System.out.println(friendVasya(500));
Kod penuh:
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);
}
}
Malah, intipati semua kod ini ialah:
- Melancarkan
main
dan mengaktifkan kaedahSystem.out.println
// Inginkan konsol, bertemu rakan; - meluluskan hujah
int money = 500
// Memindahkan wang kepada rakan; - melancarkan kaedah
friendVasya
dan memproses hujahint money
yang diterima daripada kaedahmain
// Vasya pergi ke kedai dan cuba membeli kotak set-top dengan wang yang diberikan; - kembali
String purchase
kepada kaedahmain
sebagai hujah yang diluluskanreturn
kepada kaedahprintln
// Vasya melaporkan sama ada dia berjaya melakukan ini atau tidak.
GO TO FULL VERSION