Classes Flashcards
Rekord - vlastnosti (3), co ma automaticky (5)
Vlastnosti: immutable, final (trida i fieldy), muze se anotovat (trida i fieldy)
konstruktor se vsemi parametry
accessory (gettery)
equals
hashCode
toString
Jak se v rekordu jmenuje getter pro promennou x
x()
Co je lokalni rekord
Rekord definovany uvnitr metody
(napr. pro ntici kvuli streamu)
Zapis rekordu s nazvem Point a fieldy x, y
Jeho instanciovani
Ziskani x
public record Point (int x, int y) {}
Point point = new Point(1, 2);
int x = point.x();
Zapis kanonicky konstruktor rekordu Point s fieldy x a y, obsahujici business logiku
public Point(int x, int y) {
// logika
this.x = x;
this.y = y;
}
Zapis kanonickeho kompaktniho konstruktoru rekordu Point s fieldy x a y, obsahujici business logiku
public Point {
// logika
}
fieldy se na konci priradi automaticky
UML diagram - zapis privatniho atributu a public metody
-atribut:typ
+metoda():typ
UML diagram - zapis dedicnosti a asociace (x obsahuje y)
dedicnost: sipka s dutym trojuhelnikem
asociace: kotova sipka s ozacenim poctu na kazde strane (0, 1, *)
Activity diagram - zapis eventu a vysledku
event: cerny puntik
vysledek: cerny puntik v kolecku
Activity diagram - zapis rozhodnuti a aktivity
rozhodnuti: piculka
aktivita: kulaty obdelnik
Sekvencni diagram - jak vypada
Kazdy objekt ma svou svislou lifeline
Obdelnik na care je zivot
Sipky mezi nimi jsou operace
Teckovana sipka je return
Co dela keyword new
Vytvori novou instanci objektu na heapu
Druhy promennych
Field - globalni promenna
Lokalni promenna - v bloku, nema modifikator pristupu
Type inference
Pro lokalni promenne lze pouzit var, pokud lze typ odvodit
Typ je maximalne konkretni, nemeni se
Konstanta - zapis + kdy se inicializuje
public static final NAME = …;
private final NAME = …;
final mohou byt i lokalni promenne a parametry
a. hned
b. pomoci vsech konstruktoru
c. pomoci inicializatoru
Staticky kontext
Class memory context
Je sdilen vsemi instancemi
Nelze v nem pouzit this
Lze volat z tridy i z instance
Staticky inicializator - syntaxe, kdy se vola
Poradi u dedicnosti
static {
staticVariable = “x”;
}
Jen jednou, pri loadu class
Object, Parent, Child
Inicializator, kdy se vola
Poradi u dedicnosti
{
field = “x”;
}
Pri vytvoreni instance jeste pred konstruktorem
Parent, Child (Object ho nema)
Syntax statickeho importu vseho ve tride
import static pkg.Class.*;
Immutable class (3)
+ priklady (3)
Fieldy jsou private, maji jen gettery
Pro zmenu parametru lze vratit repliku
Jsou thread safe
Wrappery, String, LocalDate
Pretizeni
Stejny nazev a navratovy typ, jine typy / pocet parametru
Nelze mit stejne jmeno a parametry, ale jiny navratovy typ!
Varargs + zapis
Vzdy posledni
Muzou byt hodnoty nebo jejich pole
public static void main(String… args) {
//values.length
//values[0]
}
Defaultni konstruktor
Bezparametricky
Vytvori se automaticky, ale jen pokud trida zadny nema
MyClass() { }