Już kilka razy spotkałem się z momentami, w których studenci nie rozumieli logiki interakcji pomiędzy metodami. W jednym z pytań do zadań podano następujący kod:
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;
}
}
Tak naprawdę, stosując się do tego kodu, niezależnie od tego, jaką wartość przekażemy metodzie convertCelsiusToFahrenheit
, zawsze otrzymamy ten sam wynik. Jak powinna przebiegać interakcja? Wyobraźmy sobie, że jesteś ty. Masz trochę pieniędzy i chcesz kupić konsolę, znając cenę. Ale tak bardzo pasjonujesz się nauką języka Java, że nie masz czasu na zakup konsoli.
public static void main(String[] args) {
Ale masz przyjaciela, który ma czas i uwielbia włóczyć się po sklepach.
public static String friendVasya(int money) {
int price = 300;
W tym przypadku stworzyłem metodę friendVasya
z typem zwracanym String
, zamiast tego możesz ustawić dowolny inny typ danych, wszystko zależy od tego, co ostatecznie chcesz uzyskać. Po uruchomieniu metoda friendVasya
otrzyma kwotę określoną w argumencie ( int money
). Przyjaciel Vasyi może mieć wiele własnych spraw i potrzeb, opisalibyśmy to wszystko w metodzie friendVasya
, ale interesuje nas tylko to, czy kupi nam konsolę. Dodajmy więc do niego tę funkcję.
public static String friendVasya(int money){
int cash = money - price;
String purchase;
W związku z tym może być wystarczająco dużo pieniędzy lub może ich nie być. Zastosujmy różne reakcje na takie sytuacje.
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);}
W wyniku wywołania metody friendVasya
i przekazania jej pieniędzy w postaci argumentu money, będziemy mogli kupić konsolę lub dowiedzieć się, że brakuje nam pieniędzy na zakup. Pozostaje tylko dodać w kodzie programu wywołanie tej metody, wskazując, ile pieniędzy jesteś skłonny przeznaczyć na konsolę /*w tym przypadku będzie to 500 */:
public static void main(String[] args) {
System.out.println(friendVasya(500));
Pełny kod:
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);
}
}
W rzeczywistości istotą całego tego kodu jest:
- Uruchamianie
main
i aktywowanie metodySystem.out.println
// Chciałem konsolę, spotkałem znajomego; - przekazał argument
int money = 500
// Przesłał pieniądze znajomemu; - uruchomienie metody
friendVasya
i przetworzenie argumentuint money
otrzymanego od metodymain
// Wasia idzie do sklepu i za otrzymane pieniądze próbuje kupić dekoder; - powrót
String purchase
do metodymain
jako argument przekazanyreturn
do metodyprintln
// Vasya raportuje, czy mu się to udało, czy nie.
GO TO FULL VERSION