Składnia klasy w języku Java

Język Java w przeciwieństwie do języka C++ nie udostępnia struktury jako oddzielnej konstrukcji. Jak zatem poradzić sobie z tym problemem?

Odpowiedzią jest użycie innego elementu tego języka, fundamentu programowania obiektowegoprogramowanie obiektoweprogramowania obiektowego – klasy. Pojęcia klasy i obiektowości zostaną szczegółowo omówione w kolejnych e‑materiałach. Do implementacji klasy pełniącej funkcję struktury potrzebujemy jedynie podstawowych informacji.

Ciekawostka

Java jest językiem obiektowym, dlatego już pisząc pierwsze programy, stosowaliśmy klasy. Nawet prosta aplikacja wypisująca na ekranie „Witaj świecie” składa się z co najmniej jednej klasy.

Przeanalizujmy konstrukcję klasy imitującej strukturę:

Linia 1. class Struktura otwórz nawias klamrowy. Linia 2. public int wartosc1 średnik. Linia 3. public char wartosc2 średnik. Linia 4. public boolean wartosc3 średnik. Linia 5. public String wartosc4 średnik. Linia 6. public int wartosc5 średnik. Linia 7. prawy ukośnik prawy ukośnik kolejne wartosci. Linia 8. zamknij nawias klamrowy.

Definicję struktury zaczynamy od wyrazu class. Jest to informacja dla kompilatora, że tworzymy nową klasę. Następnie podajemy wybraną nazwę struktury, po czym umieszczamy nawiasy klamrowe.

Między nawiasami zapisujemy zmienne, które mają znajdować się w strukturze. Są to pola strukturypole strukturypola struktury. Zauważmy, że mogą mieć one różne typy – właśnie dlatego struktury są takie użyteczne.

Zwróćmy uwagę na wyraz public, który znajduje się przed każdym z typów zmiennych. Bez niego nie uzyskamy dostępu do żadnej ze zmiennych w strukturze.

Ciekawostka

Słowo kluczowe public to jeden z czterech modyfikatorów dostępu. Pozostałe trzy to: protected, private oraz default. W programowaniu obiektowym służą one do ochrony poszczególnych elementów kodu przed nieumyślną ingerencją ze strony programisty. Modyfikator public jest najniższym stopniem zabezpieczeń – nie daje żadnej ochrony.

Tworzenie struktur

Przedstawiony fragment kodu jest tylko definicją struktury – nie możemy jeszcze w niej przechowywać żadnych danych. Aby móc to zrobić, skorzystamy ze znanej nam już składni tworzenia nowej zmiennej, czyli z instancjonowania.

Ważne!

Ze względu na narzucony z góry schemat plików z kodem źródłowym, zwracamy uwagę, gdzie umieścimy kod definiujący strukturę. Istnieje kilka rozwiązań tego zagadnienia, my zaimplementujemy ten kod w pliku z główną klasą, ale poza jej definicją.

Linia 1. class Struktura otwórz nawias klamrowy. Linia 2. public int wartosc1 średnik. Linia 3. public char wartosc2 średnik. Linia 4. public boolean wartosc3 średnik. Linia 5. public String wartosc4 średnik. Linia 6. public int wartosc5 średnik. Linia 7. zamknij nawias klamrowy. Linia 9. public class Main otwórz nawias klamrowy. Linia 10. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 11. Struktura struktura znak równości new Struktura otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. zamknij nawias klamrowy. Linia 13. zamknij nawias klamrowy.

Teraz możemy odwoływać się do poszczególnych elementów struktury za pomocą operatora kropki.

Linia 1. class Struktura otwórz nawias klamrowy. Linia 2. public int wartosc1 średnik. Linia 3. public char wartosc2 średnik. Linia 4. public boolean wartosc3 średnik. Linia 5. public String wartosc4 średnik. Linia 6. public int wartosc5 średnik. Linia 7. zamknij nawias klamrowy. Linia 9. public class Main otwórz nawias klamrowy. Linia 10. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 11. Struktura struktura znak równości new Struktura otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. struktura kropka wartosc1 znak równości 15 średnik. Linia 13. struktura kropka wartosc3 znak równości true średnik. Linia 14. System kropka out kropka println otwórz nawias okrągły struktura kropka wartosc1 zamknij nawias okrągły średnik. Linia 15. System kropka out kropka println otwórz nawias okrągły struktura kropka wartosc3 zamknij nawias okrągły średnik. Linia 16. zamknij nawias klamrowy. Linia 17. zamknij nawias klamrowy.

Wyjście programu:

Linia 1. 15. Linia 2. true.

Rozdzielność struktur

Każda utworzona zmienna o typie struktury jest oddzielnym bytem. Oznacza to, że jeżeli stworzymy trzy różne struktury i nadamy każdemu z ich pól różne wartości, kod będzie poprawny.

Linia 1. class Struktura otwórz nawias klamrowy. Linia 2. public int wartoscInt średnik. Linia 3. public String wartoscString średnik. Linia 4. zamknij nawias klamrowy. Linia 6. public class Main otwórz nawias klamrowy. Linia 7. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 8. Struktura struktura1 znak równości new Struktura otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. struktura1 kropka wartoscInt znak równości 1 średnik. Linia 10. struktura1 kropka wartoscString znak równości cudzysłów Pierwsza struktura cudzysłów średnik. Linia 11. Struktura struktura2 znak równości new Struktura otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. struktura2 kropka wartoscInt znak równości 2 średnik. Linia 13. struktura2 kropka wartoscString znak równości cudzysłów Druga struktura cudzysłów średnik. Linia 15. System kropka out kropka println otwórz nawias okrągły struktura1 kropka wartoscInt plus cudzysłów cudzysłów plus struktura1 kropka wartoscString zamknij nawias okrągły średnik. Linia 16. System kropka out kropka println otwórz nawias okrągły struktura2 kropka wartoscInt plus cudzysłów cudzysłów plus struktura2 kropka wartoscString zamknij nawias okrągły średnik. Linia 17. zamknij nawias klamrowy. Linia 18. zamknij nawias klamrowy.

Wyjście programu:

Linia 1. 1 Pierwsza struktura. Linia 2. 2 Druga struktura.

Możemy zdefiniować więcej niż jedną strukturę w kodzie. Programy zazwyczaj składają się z dziesiątek, czasami nawet setek struktur (oraz klas), które działają razem, aby stworzyć aplikację.

Słownik

pole struktury
pole struktury

składowa część struktury; w przypadku następującej struktury:

Linia 1. class Struktura otwórz nawias klamrowy. Linia 2. public int wartosc1 średnik. Linia 3. public char wartosc2 średnik. Linia 4. public boolean wartosc3 średnik. Linia 5. public String wartosc4 średnik. Linia 6. public int wartosc5 średnik. Linia 7. zamknij nawias klamrowy.

polami struktury są:

  • wartosc1wartosc5 – typu całkowitego,

  • wartosc2 – typu znakowego,

  • wartosc3 – typu logicznego,

  • wartosc4 – łańcuch znaków

programowanie obiektowe
programowanie obiektowe

jeden z paradygmatów programowania; programy utworzone za jego pomocą opierają się na wzajemnych interakcjach między obiektami, czyli instancjami klas