Junior
Aké typy tried v Jave existujú?
sobes.tech AI
Odpoveď od AI
- Obyčajné (regulárne / konkrétne) triedy: Môžu byť inštanciované, obsahujú polia, metódy, konštruktory.
- Abstraktné triedy: Nemôžu byť inštancované priamo. Môžu obsahovať abstraktné metódy (bez implementácie) a bežné metódy. Používajú sa na definovanie spoločných vlastností pre podtriedy.
abstract class AbstractClass { abstract void abstractMethod(); // Abstraktná metóda void regularMethod() { System.out.println("Bežná metóda"); } } - Vnorené triedy (nested classes): Vyhlasujú sa vo vnútri inej triedy. Môžu byť:
- Statické vnorené triedy (static nested classes): Nemajú prístup k nestatickým členom vonkajšej triedy. Sú vytvorené bez inštancie vonkajšej triedy.
class OuterClass { static class StaticNestedClass { // ... } } - Vnorené triedy (inner classes): Majú prístup ku všetkým členom vonkajšej triedy (vrátane súkromných). Sú spojené s inštanciou vonkajšej triedy.
class OuterClass { class InnerClass { // Má prístup k členom OuterClass } } - Lokálne triedy (local classes): Vyhlasujú sa vo vnútri metódy, cyklu alebo bloku if. Prístup k nim je obmedzený oblasťou ich vyhlásenia.
class OuterClass { void someMethod() { class LocalClass { // Vyhlásená lokálne } LocalClass obj = new LocalClass(); } } - Anonymné triedy (anonymous classes): Bez mena, vytvárajú sa súčasne s vyhlásením alebo inštanciovaním. Používajú sa na jednorazové použitie.
interface MyInterface { void myMethod(); } MyInterface anon = new MyInterface() { @Override public void myMethod() { System.out.println("Anonymná trieda"); } };
- Statické vnorené triedy (static nested classes): Nemajú prístup k nestatickým členom vonkajšej triedy. Sú vytvorené bez inštancie vonkajšej triedy.
- Triedy-záznamy (records) (od Java 14): Kompaktná syntax na vyhlásenie nemenných tried, určených na ukladanie dát (POJO).
record Person(String name, int age) { // Automaticky generované konštruktory, gettery, equals(), hashCode(), toString() }