sobota, 29 września 2018

Java zmienne


Java pola (zmienne)

W poprzedniej sekcji rozmawialiśmy o zmiennych wewnątrz metody. Zmienne, które możesz ustawić wewnątrz metody są tylko dostępne dla tych metod. Nie są one dostępne dla innych metod. Mają one zakres lokalny.

Jednak można ustawić zmienne poza metodą, które będą widoczne dla wszystkich metod w klasie. Są one znane jako zmienne pola (lub zmienne instancji). Można je ustawić w dokładnie taki sam sposób, jak wszystkie inne zmienne. Dodaj następujące cztery pola do nowej klasy WynikiStudentow:

package szczegolyegzaminu;
 
 
public class WynikiStudentow {
    
    String Pelna_Nazwa;
    String Nazwa_Egzaminu;
    String Wynik_Egzaminu;
    String Stopien_Egzaminu;    
}

Utworzyliśmy cztery zmienne typu string (cztery pola typu string). Jak sugerują, nazwy pól, ciąg będzie zawierał imię i nazwisko, nazwę egzaminu, wynik i stopnie. Te cztery pola będą dostępne dla wszystkich metod, które możemy napisać w tej klasie i nie będą zmiennymi lokalnymi w każdej metodzie. Mają one globalny zasięg.

Aby zobaczyć, jak są one globalne, powróć do klasy SzczegolyEgzaminu, jedynej z główną metodą. Dodać poniższą linię kodu w celu utworzenia nowego obiektu z klasy WynikiStudentow:


package szczegolyegzaminu;
 
 
public class SzczegolyEgzaminu {
 
    
    public static void main(String[] args) {
        
        WynikiStudentow aStudent = new WynikiStudentow();
    }    
}

To jest tak samo jak w poprzedniej sekcji - używamy słowa kluczowego new do utworzenia nowego obiektu. Nazwa obiektu to aStudent, i jest typu WynikiStudentow, który jest naszą klasą.

W następnym wierszu wpisz nazwę zmiennej (aStudent), następuje kropkę. Tak szybko, jak można wpisać kropkę NetBeans wyświetli listę metod i właściwości dostępnych dla obiektu:



Cztery pola, które możemy ustawić znajdują się na liście. Nie są one metodami, ale coś, co nazywa się właściwość. Fakt, że są one na liście ze wszystkimi innymi oznacza, że mają globalny zasięg. Gdyby miały zakres lokalny nie byłoby ich na liście.

Można ustawić wartości dla właściwości. Spróbuj tego: Dodaj następujący kod wyróżniony w głównej metodzie:

package szczegolyegzaminu;
 
 
public class SzczegolyEgzaminu {
 
    
    public static void main(String[] args) {
        
        WynikiStudentow aStudent = new WynikiStudentow();
        
        aStudent.Nazwa_Egzaminu = "VB NET";
        
        String egzamin = aStudent.Nazwa_Egzaminu;
        System.out.println(egzamin);
    }    
}

Mamy wybrane pole Nazwa_Egzaminu z listy i przypisujemy mu wartość "VB NET". Następny wiersz pobiera wartość Nazwa_Egzaminu z obiektu aStudent. Wynik jest przechowywane w zmiennej o nazwie egzamin, a następnie wyświetlony. Po uruchomieniu programu, dane wyjściowe to ciąg "VB NET".

Więc cztery zmienne, które stworzyliśmy są teraz dostępne dla obu klas.

Jednak to nie jest dobry pomysł, aby pola miały globalny zasięg. Mają tendencję do straty wartości przetrzymywanych w nich, sprawia, że ​​debugowanie kodu jest wiele trudniejsze. Jest uważany za dobry, styl kodowania, aby zawęzić zakres pól.

Aby udostępnić pole tylko dla danej klasy, możesz dodać słowo kluczowe private tuż przed deklaracją pola. Zmień kod w twojej klasie WynikiStudentow na następujący:

package szczegolyegzaminu;
 
 
public class WynikiStudentow {
    
    private String Pelna_Nazwa;
    private String Nazwa_Egzaminu;
    private String Wynik_Egzaminu;
    private String Stopien_Egzaminu;
    
}

Teraz tylko kod w klasie WynikiStudentow może zobaczyć te pola. Aby to sprawdzić, wróć do metody głównej. Powinieneś zobaczyć ostrzeżenia i czerwone podkreślenia:



Usunąć trzy linie na dole. Wpisz aStudent, a następnie kropkę ponownie, aby zobaczyć listę metod i właściwości NetBeans:



Jak widać, cztery pola teraz znikneły. One znikły, bo już nie mają globalnego zasięgu i dlatego nie mogą być dostępne w klasie SzczegołyEgzaminu.

W kolejnej części dowiesz się o konstruktorze klasy.



Brak komentarzy:

Prześlij komentarz