![Объяснение взаимодействия методов (для новичков) - 1]()
Пару раз, я уже натыкался на моменты, когда студенты не понимают логику взаимодействия методов. В одном из вопросов к задачам, был приведен следующий код:
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
// Вася сообщает, получилось ли ему это сделать или нет.
Вроде хотел проще объяснить, а по ходу наворотил еще сложнее)
P.S. Первая статья. Сам пока не далеко уполз (уровень 3). Так что в ожидании критики по существу)
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ