W poprzednim artykule Pierwsza klasa opisałem czym jest klasa i jak ją stworzyć w IntelliJ. Sama klasa jest mało przydatna bez nadania jej wartości, danych i wykonania na niej działania. W tym artykule pokażę jak nadawać wartości klasie, w kolejnym jak wykonać na niej działania. Więcej informacji można znaleźć w oficjalnej dokumentacji Java od Oracle – Using Objects. Pokażę również jak klasa może nam “przedstawić się i opowiedzieć coś o sobie” – metoda toString().

Przedstawię klasę z poprzedniego przykładu, bo na niej będę prezentował kolejne zagadnienia związane z klasami języka Java. Tak samo jak poprzednio dla uproszczenia pomijam modyfikatory dostępu dla zmiennych i metod w klasie Java.

public class Notebook {
    int pages;
    int pagesWritten;
    int currentPage;

    void goToPage(int page) {
        currentPage = page;
    }
}

Wartości, czyli dane w klasie przechowywane są w zmiennych, w powyższym przykładzie mamy trzy zmienne:
– int pages;
– int pagesWritten;
– int currentPage;
Element przechowujący wartości, dane w klasie ma kilka nazw, określeń, które są używane zamiennie:
– zmienna,
– pole w klasie,
– atrybut klasy.

Jak nadać wartość zmiennej w klasie? Najpierw potrzebujemy obiekt danej klasy. Następnie dla obiektu musimy ustawić wartości dla jego pól w klasie. Aby dla obiektu mieć dostęp do atrybutu w klasie należy użyć operatora kropki (.) za pomocą, którego odwołujemy się do atrybutu.

// tworzenie obiektu klasy Notebook
Notebook blankNotebook = new Notebook();

// przypisanie wartości do zmiennej
// użycie operatora kropki
blankNotebook.pagesWritten = 10;

Jak sprawdzić nadaną wartość dla zmiennej w klasie? Najprostszym sposobem jest wypisanie jej na konsoli, terminalu, “czarnym okienku”. Do tego służy polecenie System.out.println(); Konsola i polecenie System.out.println(); będzie towarzyszyć Junior Java Developer’owi przez bardzo, bardzo długi czas i będzie jedynym miejscem, gdzie będzie można zobaczyć wyniki działania programu. Oczywiście są inne sposoby np. testy jednostkowe, używanie Logger’ów, ale na razie wystarczy System.out.println(). Informacje wypisywane na konsoli nazywają się log’ami w codziennej pracy każdy programista przegląda log’i za pomocą, których śledzi działanie programu.

public class NotebookStore {
    public static void main(String[] args) {
        Notebook blankNotebook = new Notebook();
        blankNotebook.pagesWritten = 10;

        // wypisanie wartości jednej zmiennej z klasy Notebook
        System.out.println("Liczba stron zapisanych w Notatniku:");
        System.out.println(blankNotebook.pagesWritten);
    }
}
Wartości w pierwszej klasie – konsola
Wartości w pierwszej klasie – konsola

Jeżeli chcielibyśmy wypisać więcej zmiennych w konsoli, to trzeba dla każdej zmiennej użyć polecenia System.out.println(); ale jak wiadomo programiści unikają powtarzającego się kodu zgodnie z zasadą DRY, którą opisałem w artykule Dlaczego kod w języku Java powinien być SOLID’ny oraz suchy, DRY?. Sposobem na rozwiązanie tego jest użycie metody toString(), za pomocą której możemy otrzymać tekstową reprezentację obiektu, czyli informacje czytelne dla programisty w ogólnie przyjętej formie.

// wypisanie wartości wielu zmiennych z tej samej klasy,
// bez użycia metody toString()
System.out.println("Wartości wszystkich zmiennych zapisanych w Notatniku:");
System.out.println(blankNotebook.pages);
System.out.println(blankNotebook.pagesWritten);
System.out.println(blankNotebook.currentPage);

Metodę toString() musimy umieścić w klasie, dla której chcemy wypisywać wartości. Na początku nie trzeba wiedzieć jak dokładnie napisać taką metodę oraz, że taka metoda jest nadpisywana z nadklasy Object. W IntelliJ wystarczy użyć skrótu ALT+Insert będąc w klasie, dla której chcemy dodać metodę toString().

Wartości w pierwszej klasie - toString() - ALT + Insert
Wartości w pierwszej klasie – toString() – ALT + Insert

Poniżej znajdują się zrzuty ekranów ze wszystkimi krokami jakie należy wykonać, aby ustawić i wyświetlić wartości dla zmiennych w klasie.

Wartości w pierwszej klasie - toString() - ALT + Insert
« z 7 »

Całość kodu można znaleźć na:

Zapraszam do regularnego odwiedzania mojej strony, będą pojawiać się kolejne artykuły oraz do kontaktu przez email kontakt(at)juniorjavadeveloper.pl.