Piorytety zmiennych

0

Jakie są piorytety zmiennych? (np.zadeklarowanych w bloku (lokalnych), parametrów metody, zmiennych instancyjnych klasy w stosunku do siebie? ) i po co one są ?

0

Java pozwala by parametr metody lub zmienna lokalna nazywała się tak samo jak pole klasy.

public class Osoba
{
    private boolean plec;
    .....
    public Osoba(boolean plec)
    {
        // istnieją dwa "byty" o nazwie plec (parametr metody i pole klasy), priorytet ma parametr metody
        // do pola o nazwie plec można dotrzeć poprzedzając nazwę słowem kluczowym this
        // plec=plec; jest również poprawne ale jest instrukcją pozorną - nie zmienia wartości niczego
        this.plec=plec;
        .....
    }
}

Częsty błąd początkujących:

public class Okno extends JFrame
{
    private JButton stop;
    ......
    public Okno()
    {
        .....
        // powstaje zmienna lokalna stop przesłaniająca  pole klasy
        JButton stop=new JButton("Koniec"); 
        stop.setEnabled(fasle);
        add(stop);
        .....
    }
    ........
    private void pewnaMetoda()
    {
        ....
        // błąd wykonania (NullPointerException), zmienna lokalna stop z konstruktora jest niewidoczna, 
        // pole klasy stop nie było inicjowane
        stop.setEnabled(true);
    }
}

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