Junior
Aké typy tried v Jave existujú?
sobes.tech AI
Odpoveď od AI
V Jave existujú nasledujúce hlavné typy tried:
-
Bežné (Standard Class)
- Môžu obsahovať polia, metódy, konštruktory.
- Môžu byť dediť inými triedami, ak nie sú deklarované ako
final. - Môžu implementovať rozhrania.
- Sú deklarované s prístupovými modifikátormi (
public,protected,default,private).
-
Abstraktné (Abstract Class)
- Deklarované kľúčovým slovom
abstract. - Nemôžu byť priamo inštancované.
- Môžu obsahovať abstraktné metódy (bez implementácie) a bežné metódy.
- Sú určené na dedenie; podtriedy musia poskytnúť implementáciu abstraktných metód.
// Abstraktná trieda pre tvar abstract class Shape { abstract double area(); // Abstraktná metóda výpočtu plochy void display() { // Bežná metóda System.out.println("This is a shape."); } } - Deklarované kľúčovým slovom
-
Konečné (Final Class)
- Deklarované kľúčovým slovom
final. - Nemôžu byť dediť inými triedami.
- Používajú sa na zabránenie rozšírenia triedy, zabezpečenie bezpečnosti alebo nemennosti implementácie.
// Konečná trieda, ktorú nemožno dediť final class ImmutableString { private final String value; public ImmutableString(String value) { this.value = value; } public String getValue() { return value; } } - Deklarované kľúčovým slovom
-
Enumy (Enum)
- Špeciálny typ triedy určený na reprezentáciu pevne stanoveného počtu konštánt.
- Deklarované kľúčovým slovom
enum. - Konštanty enumu sú predvolene
public static final. - Môžu mať polia, metódy a konštruktory (s skrytým modifikátorom
private).
// Výber dní v týždni enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } -
Anonymné (Anonymous Class)
- Trieda bez mena, ktorá sa vytvára a inštanciuje súčasne.
- Často sa používajú na implementáciu rozhraní alebo rozšírenie tried "za behu", keď je potrebné jednorazové použitie.
- Nemôžu mať jasné konštruktory.
// Vytvorenie anonymnej triedy implementujúcej rozhranie Runnable Runnable r = new Runnable() { @Override public void run() { System.out.println("Running in an anonymous class."); } }; -
Vnorené (Nested Class)
- Triedy deklarované vnútri inej triedy.
- Existujú dva typy:
- Statické vnorené triedy (Static Nested Class): deklarované s kľúčovým slovom
static. Nemajú prístup k nestatickým členom vonkajšej triedy priamo. Inštancujú sa ako bežné triedy. - Vnorené triedy (Inner Class): nie sú deklarované ako
static. Majú prístup ku všetkým členom vonkajšej triedy, vrátaneprivate. Vyžadujú inštanciu vonkajšej triedy na vytvorenie svojej inštancie.
- Statické vnorené triedy (Static Nested Class): deklarované s kľúčovým slovom
// Vonkajšia trieda class OuterClass { private String outerField = "Outer"; // Statická vnorená trieda static class StaticNestedClass { void display() { System.out.println("Inside StaticNestedClass."); // Priamy prístup k outerField nie je možný } } // Vnorená trieda class InnerClass { void display() { System.out.println("Inside InnerClass. outerField: " + outerField); // Prístup k outerField } } } -
Rekordové triedy (Record - od Java 14)
- Deklarované kľúčovým slovom
record. - Určené na ukladanie dát. Kompilátor automaticky generuje konštruktor, metódy prístupu k poliam (
accessor methods),equals(),hashCode()atoString(). - Polia rekordu sú implicitne
final.
// Rekord na reprezentáciu bodu v 2D priestore record Point(int x, int y) { // Kompilátor vygeneruje konštruktor, metódy x(), y(), equals(), hashCode(), toString() } - Deklarované kľúčovým slovom