Witam,
jestem początkujący w javie i przy próbie rozwiązania prostego zadania pojawia się komunikat "s cannot be resolved to a variable". Poniżej schemat:
Main.java
public class Main {
public static void main(String[] args) {
Calculator suma = new Calculator(3,4);
System.out.println(suma.infoSuma());
}
}
Calculator.java
public class Calculator {
public double a,b;
Calculator(double a, double b) {
this.a = a;
this.b = b;
}
public void add(double s) {
s = a+b;
}
String infoSuma() {
return "Suma wynosi: " + s;
}
}
Proszę o pomoc. Nie rozumiem dlaczego problem dotyczy zmiennej s, skoro zadeklaraowana jest jako taki sam typ do a i b, czyli double. Ale może chodzi o coś innego.
Po tym jak metoda add sie wykona, zmienna s jest usuwana z "programu", dlatego, że parametry metod typu prymitywnego (nie obiektowego) mają tylko zasieg lokalny i są usuwane wraz z zakończeniem funkcji.
... Jakby do metodyadd
przekazywał typ referencyjny to nic by to nie zmieniło. A usuwana to jest kopia zmiennejs
bo parametry mają zasięg lokalny.