• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Widoczność zmiennej

Object Storage Arubacloud
0 głosów
144 wizyt
pytanie zadane 4 lipca 2020 w Java przez malybyq Użytkownik (980 p.)

Hej mam taki problem chciałbym aby zmienne, które utworzyłem w metodzie hello()

public static void hello(){
        System.out.println("Witaj w kalkulatorze");
        System.out.println("Wprowadz pierwsza liczbe");
        int first = sc.nextInt();
        sc.nextLine();
        System.out.println("Wprowadz znak działania (+,-,*,/)");
        String sign = sc.nextLine();
        System.out.println("Wprowadz druga liczbe");
        int second = sc.nextInt();
    }

Chciałbym je użyc w mainie przy wywoływaniu innej metody

 

 public static void main(String[] args) {

        hello();
        calc(int first,String sign, int second);


    }

Co zrobić żeby te zmienne były widoczne poza metoda hello()? Pozdrawiam

3 odpowiedzi

+2 głosów
odpowiedź 4 lipca 2020 przez fisherek Początkujący (340 p.)
edycja 4 lipca 2020 przez fisherek

Możesz np. wyciągnąć zmienne do metody main i przekazać je jako argumenty do metod w których chcesz je użyć.

Czyli np. coś takiego:

public class Main {

    public static void main(String[] args) {
        int x = 5;
        int y =10;
        NumberPalindrome.hello(x);
        NumberPalindrome.calc(x, y);
    }
}
public class NumberPalindrome {
    public static void hello(int x) {
        System.out.println("cosik " + x);
    };
    public static void calc(int x, int y){
        int sum = x + y;
        System.out.println("suma:" + sum);
    }
}

Jest to w zasadzie gotowe rozwiązanie, ale zapoznaj się z artykułami do których linki zostały Ci podrzucone we wcześniejszych odpowiedziach. Tam masz fajnie to wyjaśnione jak to jest z tym zasięgiem zmiennych i masz też podany inny sposób z użyciem zmiennej globalnej w obrębie klasy.

 

+1 głos
odpowiedź 4 lipca 2020 przez amtrax Dyskutant (9,630 p.)

https://strefainzyniera.pl/artykul/936/zasieg-deklaracji-i-czas-istnienia-zmiennych

"Jeśli znasz język C/C++, to wiesz, że nie ma w nim żadnych ograniczeń nazw zmiennych deklarowanych w zagnieżdżanych zasięgach. Dlatego też w C/C++ deklaracja zmiennej [.... ]w bloku zewnętrznej pętli for byłaby poprawna i przesłoniłaby zmienną zewnętrzną. Projektanci Javy zdecydowali jednak, że przesłanianie nazw może być przyczyną błędów programistycznych i wobec tego zabronili go."

+1 głos
odpowiedź 4 lipca 2020 przez _Pita_ Stary wyjadacz (11,410 p.)

Polecam zapoznać się z tym artykułem

Podobne pytania

–1 głos
0 odpowiedzi 306 wizyt
pytanie zadane 16 lipca 2020 w Java przez T100 Obywatel (1,450 p.)
0 głosów
2 odpowiedzi 246 wizyt
0 głosów
2 odpowiedzi 174 wizyt
pytanie zadane 6 czerwca 2016 w Java przez Maciek Gamrot Bywalec (2,830 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...