Classes Flashcards

1
Q

Jak stworzyć klasę immutable w Javie ?

A
  1. Oznaczenie klasy jako finalna: Dzięki temu nie można jej rozszerzyć (dziedziczyć po niej), co zapobiega naruszeniu jej niezmienności przez klasy potomne.
  2. ustawienie wszystkich pól jako private i final: Oznaczenie pól jako private sprawia, że nie można ich bezpośrednio modyfikować z zewnątrz klasy. Oznaczenie ich jako final gwarantuje, że po ich inicjalizacji nie można ich zmienić.
  3. **Nie dostarczaj setterów: **Settery umożliwiają modyfikowanie pól. Aby zapewnić niezmienność, nie należy dostarczać metod umożliwiających zmianę wartości pól po ich inicjalizacji.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
1
Q

Jakie są dwie główne kategorie klas zagnieżdżonych w Javie?

A
  1. Statyczne klasy zagnieżdżone (static nested classes)
  2. Wewnętrzne klasy (inner classes)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cechy static nested classes

A
  • Są zdefiniowane jako static wewnątrz klasy zewnętrznej.
  • maja dostęp tylko do zmiennych static
  • mają dostęp nawet do private
  • Mogą istnieć niezależnie od instancji klasy zewnętrznej.
  • może mieć wszystkie modyfikatory dostępu
    ` OuterClass.NestedClass nestedObject = new OuterClass.NestedClass(10);`
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cechy inner classes

A
  • Są zdefiniowane wewnątrz klasy zewnętrznej bez modyfikatora static.
  • Mają dostęp do zmiennych instancji klasy zewnętrznej.
  • nawet do private
  • Nie mogą istnieć bez instancji klasy zewnętrznej.
  • musisz storzyć obiekt klasy zewnętrznej
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Zastosowanie klas zagnieżdzonych

A
  • Grupowanie klas, które są używane tylko w jednym miejscu.
    * Zwiększenie enkapsulacji.
  • Prowadzenie bardziej czytelnej i utrzymywalnej struktury kodu.
  • Możliwość korzystania z wielokrotnego dziedziczenia w Javie poprzez kombinację klasy zewnętrznej i wewnętrznej.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Czym jest klasa anonimowa ?

A
  • klasa wewnętrzna
  • brak nazwy - instancjonowane przy użyciu konstruktora klasy nadrzędnej lub interfejsu, który implementuj
  • Zastosowanie na miejscu: Klasy anonimowe są zwykle używane tam, gdzie są zdefiniowane i instancjonowane. Nie można ich używać w innych miejscach.
  • dostęp do zmiennych otaczającego zakresu: Klasy anonimowe mają dostęp do finalnych lub efektywnie finalnych zmiennych z otaczającego zakresu.
  • Ograniczone dziedziczenie: Klasa anonimowa może rozszerzać dokładnie jedną klasę lub implementować dokładnie jeden interfejs.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Zastosowanie klas anonimowych

A
  • Prosta implementacja interfejsów gdy implementacja jest używana tylko raz.
  • Rozszerzanie klas: z jednoczesnym dodawaniem dodatkowych metod lub nadpisywaniem istniejących.
  • Zwięzłość: - szybkie tworzenie obiektów bez potrzeby definiowania pełnej klasy w osobnym miejscu
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Czym jest klasa lokalna ?

A
  • klasa zagnieżdżona zdefiniowana wewnątrz bloku kodu
  • ## nie mogą być ani private, public, protected - są dostępnie wyłacznie w obrębie bloku
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cechy klasy lokalnej

A
  1. dostępna tylko w obrębie bloku, w którym została zdefiniowana.
  2. dostęp do zmiennych instancyjny outer class
  3. dostęp do finalnych pól w bloku w którym jest zdefiniowany
  4. nie może posiadać modyfikatorów dostępu na poziomie klasy, ale jej członkowie mogą.
  5. Ograniczenia: Klasy lokalnenie mogą być statyczne i nie mogą zawierać statycznych członków, chyba że są to stałe.: dostępna tylko w obrębie bloku, w którym została zdefiniowana.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Zastosowanie klas lokalnych

A
  1. Chcemy ukryć implementację klasy w określonej metodzie.
  2. Potrzebujemy dostępu do zmiennych lokalnych metody w klasie.
  3. Chcemy zwiększyć czytelność i organizację kodu poprzez przeniesienie klasy blisko miejsca jej użycia.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly