Пару раз, я уже натыкался на моменты, когда студенты не понимают логику взаимодействия методов. В одном из вопросов к задачам, был приведен следующий код:
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;
}
}
Фактически, следуя данному коду, не важно, какое значение мы передадим в метод convertCelsiusToFahrenheit
, на выходе будем получать всегда одно и тоже.
Как должно происходить взаимодействие?
Давайте представим, что вот есть Вы. У вас есть некоторое количество денег и вы хотите купить приставку, зная цену. Но Вы так увлечены изучением Java, что времени на покупку приставки у вас нет.
public static void main(String[] args) {
Зато у вас есть друг, у которого есть время, и он любит шататься по магазинам.
public static String friendVasya(int money) {
int price = 300;
В данном случае я создал метод friendVasya
с типом возвращаемого значения String
, вместо этого можно было задать любой другой тип данных, все зависит от того, что вы в итоге хотите получить. При запуске метода friendVasya
получит то количество денег, что Вы укажите в аргументе (int money
).
У друга Васи может быть куча своих дел или потребностей, все это мы бы описали в методе friendVasya
, но нас интересует только купит ли он нам приставку. Так что добавим ему эту возможность.
public static String friendVasya(int money){
int cash = money - price;
String purchase;
И соответственно денег может хватить, может не хватить. Давайте реализуем разные ответы при этих ситуациях.
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);}
В результате вызова метода friendVasya
и передачи ему денег в виде аргумента money, мы сможем купить приставку или узнать, что денег на покупку не хватает.
Осталось добавить вызов этого метода в код программы, указав, сколько денег вы готовы дать на приставку /*в данном случае будет 500 */:
public static void main(String[] args) {
System.out.println(friendVasya(500));
Код целиком:
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);
}
}
Фактически суть всего данного кода:
- Запуск
main
и активация методаSystem.out.println
// Захотели приставку, встретились с другом; - передали аргумент
int money = 500
// Передали деньги другу; - запуск метода
friendVasya
и обработка аргументаint money
, полученного из методаmain
// Вася идет в магазин и пробует купить на выданные деньги приставку; - возвращение
String purchase
в методmain
, как аргумент передаваемыйreturn
в методprintln
// Вася сообщает, получилось ли ему это сделать или нет.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ