Rozdział 9 - Klasy

W tym rozdziale rozpoczniemy poznawanie klas i programowania zorientowanego obiektowo (OOP – Object-Oriented Programming).

Każdy tworzony przez nas tej pory program składał się z jednej klasy publicznej. Zazwyczaj nadawaliśmy mu nazwę zgodną z zadaniem, które wykonywał. Przypomnijmy kod naszego pierwszego programu:

public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Witaj Swiecie!");
  }
}

Program ten składa się z definicji publicznej klasy HelloWorld, której ciało zawarte jest między nawiasami klamrowymi. Klasa ta ma w swoim ciele jedną metodę – main. Jak wiemy, main to specjalna metoda, która jest punktem wejścia do wykonania naszego programu, która zawsze ma taką samą sygnaturę (tzn. modyfikatory, zwracany typ, nazwę, argumenty).

Nadszedł czas, by wyjaśnić, czym są i jak tworzyć bardziej skomplikowane klasy na nasz użytek – w tym rozdziale m. in.:

  • zobaczymy, jak tworzy się i używa klas,
  • dowiemy się, jak implementować metody toString oraz equals,
  • poznamy kolejne różnice pomiędzy typami złożonymi i prymitywnymi,
  • nauczymy się, do czego służą modyfikatory public, private, oraz static,
  • dowiemy się, czym są pola i metody klas,
  • zobaczymy, do czego służą konstruktory i słowo kluczowe this,
  • nauczymy się, jak zawierać nasze klasy w pakietach i jak je importować.

W tym rozdziale, wiele z podrozdziałów ma własne sekcje z podsumowaniem, pytaniami sprawdzającymi znajomość materiału, oraz zadania.


Spis treści

  1. Rozdział 9 - Klasy
    1. Czym są klasy i do czego służą?
      1. Przykład pierwszej klasy z polami
      2. Użycie pierwszej klasy
      3. Nazewnictwo klas
      4. Jak tworzyć nowe instancje (obiekty) klas?
      5. Metoda toString
      6. Podsumowanie
      7. Pytania
      8. Zadania
        1. Klasa Osoba
    2. Różnice między typami prymitywnymi i referencyjnymi
      1. Przechowywane wartości
      2. Tworzenie
    3. Modyfikatory dostępu
      1. Modyfikatory dostępu public oraz private
      2. Modyfikatory public oraz private – przykład – klasa Ksiazka
        1. Użycie pól i metod publicznych klasy Ksiazka
        2. Próba użycia pola i metody private klasy Ksiazka spoza tej klasy
        3. Dostęp do prywatnych pól oraz metod w klasie Ksiazka
      3. Kiedy stosować modyfikatory dostępu
    4. Podsumowanie i pytania – typy prymitywne i referencyjne, modyfikatory dostępu
      1. Typy prymitywne i referencyjne
      2. Typy prymitywne i referencyjne – pytania
      3. Modyfikatory dostępu
      4. Modyfikatory dostępu – pytania
    5. Pola klas
      1. Pola klas a zmienne definiowane w metodach
        1. Zapamiętywanie wartości
        2. Inicjalizacja i domyślne wartości typów prymitywnych
        3. Wartość null
        4. Brak wymagania definicji przed użyciem
      2. Gettery i settery oraz enkapsulacja
        1. this
      3. Konwencje dotyczące pisania setterów i getterów
      4. Podsumowanie
        1. Pola klas
        2. Wartości domyślne i null
        3. Gettery i settery oraz this
        4. Konwencje dotyczące pisania setterów i getterów
      5. Pytania
      6. Zadania
        1. Klasa Punkt
    6. Konstruktory
      1. Domyślny konstruktor
      2. Przeładowanie konstruktora
      3. Inicjalizacja pól finalnych w konstruktorach
      4. Prywatne konstruktory
      5. Podsumowanie
      6. Pytania
      7. Zadania
        1. Klasa Adres
        2. Klasa Osoba z konstruktorem
    7. Equals i porównywanie obiektów
      1. Porównywanie wartości zmiennych
      2. Porównywanie obiektów za pomocą equals
        1. Sygnatura metody equals
        2. Typ Object i krótko o dziedziczeniu
        3. Implementacja metody equals w klasie Osoba
        4. Kontrakt equals
        5. Equals – przykład z tablicą
        6. Krok po kroku – pisanie metody equals
      3. Podsumowanie
      4. Pytania
      5. Zadania
        1. Klasa Punkt z equals
        2. Klasa Figura z equals
    8. Referencje do obiektów
      1. Przesyłanie i modyfikowanie obiektów w metodach
      2. Współdzielenie obiektów
        1. Osobne obiekty typu Punkt
        2. Tworzenie kopii obiektów
        3. Kiedy współdzielić obiekty?
      3. Stałe referencje
      4. Obiekty niemutowalne (immutable objects)
        1. Zalety i wady obiektów niemutowalnych
        2. Jak zapewnić niemutowalność obiektów
        3. Niemutowalny typ String
      5. Pamięć programu – stos i sterta
      6. Czas życia obiektów utworzonych w metodach
      7. Podsumowanie różnic typów prymitywnych i referencyjnych
      8. Podsumowanie
      9. Pytania
      10. Zadania
        1. Immutowalna Ksiazka i Biblioteka
    9. Metody i pola statyczne
      1. Pola statyczne
      2. Metody statyczne
      3. Dlaczego metoda main jest statyczna?
      4. Kiedy stosować pola i metody statyczne?
      5. Podsumowanie
      6. Zadania
        1. Klasa użyteczna Obliczenia
    10. Pakiety i importowanie klas
      1. Pakiety klas
        1. Konwencja nazewnicza pakietów klas
      2. Importowanie klas
        1. Importy statyczne – static import
        2. Lokalizacja klas – classpath
        3. Kiedy nie trzeba stosować instrukcji import
      3. Dostęp domyślny (default access) i klasy niepubliczne
        1. Dostęp domyślny
        2. Kiedy stosować dostęp domyślny?
        3. Modyfikator dostępu protected
        4. Niepubliczne klasy
      4. Podsumowanie
        1. Pakiety klas
        2. Importowanie klas
        3. Dostęp domyślny
      5. Pytania

< przejdź do pełnego spisu treści

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Nie musisz podawać swojego imienia, e-mailu, ani strony www, aby opublikować komentarz. Komentarze muszą zostać zatwierdzone, aby były widoczne na stronie.