Un paio di volte mi sono già imbattuto in momenti in cui gli studenti non comprendono la logica dell'interazione tra i metodi. In una delle domande per i compiti, è stato fornito il seguente codice:
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;
}
}
Infatti, seguendo questo codice, qualunque valore passiamo al metodo convertCelsiusToFahrenheit
, otterremo sempre lo stesso output. Come dovrebbe avvenire l'interazione? Immaginiamo che ci sia tu. Hai dei soldi e vuoi comprare una console, conoscendo il prezzo. Ma sei così appassionato di imparare Java che non hai tempo per acquistare una console.
public static void main(String[] args) {
Ma hai un amico che ha tempo e ama girare per negozi.
public static String friendVasya(int money) {
int price = 300;
In questo caso, ho creato un metodo friendVasya
con un tipo restituito String
, invece potresti impostare qualsiasi altro tipo di dati, tutto dipende da cosa vuoi ottenere alla fine. Quando il metodo viene eseguito, friendVasya
riceverà l'importo di denaro specificato nell'argomento ( int money
). L'amico di Vasya potrebbe avere molti affari o bisogni propri, descriveremo tutto questo nel metodo friendVasya
, ma a noi interessa solo se ci comprerà una console. Quindi aggiungiamogli questa funzionalità.
public static String friendVasya(int money){
int cash = money - price;
String purchase;
E di conseguenza, potrebbero esserci abbastanza soldi o potrebbero non essercene abbastanza. Implementiamo risposte diverse per queste situazioni.
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);}
Come risultato della chiamata al metodo friendVasya
e del trasferimento di denaro sotto forma di argomento denaro, potremo acquistare una console o scoprire che non ci sono abbastanza soldi per l'acquisto. Non resta che aggiungere una chiamata a questo metodo nel codice del programma, indicando quanti soldi sei disposto a dare per la console /*in questo caso sarà 500 */:
public static void main(String[] args) {
System.out.println(friendVasya(500));
Codice completo:
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);
}
}
In effetti, l'essenza di tutto questo codice è:
- Avvio
main
e attivazione del metodoSystem.out.println
// Volevo una console, ho incontrato un amico; - ha superato una discussione
int money = 500
// Ho trasferito denaro a un amico; - avvio del metodo
friendVasya
ed elaborazione dell'argomentoint money
ricevuto dal metodomain
// Vasya va al negozio e cerca di acquistare un set-top box con i soldi dati; - ritornando
String purchase
al metodomain
come argomento passatoreturn
al metodoprintln
// Vasya segnala se è riuscito o meno a farlo.
GO TO FULL VERSION