Wczytanie danych w innej funkcji

0

Cześć. Właśnie zacząłem się uczyć javy i mam problem, którego nie umiem rozwiązać.

import java.io.*;
import javax.swing.JOptionPane;

public class Zadanie1 {
    
    String lancuch;
    
    public void wczytaj() {
        lancuch = JOptionPane.showInputDialog(null, "Podaj lancuch znakow");
    }
    
    public static void main(String[] args) {
        wczytaj();
        System.exit(0);
    }
}

Błąd:

non-static variable this cannot be referenced from a static context

w linii z

wczytaj();

Próbowałem już na różne sposoby nadawać te static dla funkcji, ale nie potrafię tego skompilować. Ogólnie mam gotowy program i moim zadaniem jest przerobić go na funkcje, ale nie potrafię znaleźć zrozumiałego wytłumaczenia. W C++ wszystko wydaje się prostsze.

dodanie znacznika <code class="java"> oraz <quote> dla treści błędu - fp

1

Ale tu nie ma nic skomplikowanego. Odpowiednikiem "funkcji" z C++ jest metoda statyczna w javie, a nie zwykła metoda. Twoja metoda "wczytaj" jest metodą OBIEKTU a nie metodą KLASY. Oznacza to ze musisz mieć OBIEKT na którym tą metodę wywołasz. Tak samo jest z polem "lancuch". Nie jest statyczne więc jest polem OBIEKTU a nie KLASY.

    public static void main(String[] args) {
        Zadanie1 obiekt = new Zadanie1();
        obiekt.wczytaj();
    }
0

Dzięki, działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1