3. Alkalom: Komplex Adatmodellezés
Elméleti összefoglaló
A harmadik alkalommal az objektumok közötti kapcsolatokra és a speciális metódusok felülírására koncentráltunk.
- Konstruktor láncolás: A
this(...)kulcsszóval egy konstruktorból meghívhatunk egy másikat, csökkentve a kódismétlést. - Metódus felülírás (Override): Az ősosztálytól örökölt metódusok (pl.
ToString,Equals) testreszabása. - Összetett típusok: Egy osztály mezője lehet egy másik osztály példánya is (kompozíció).
Példakód: Hajó osztály láncolt konstruktorral
namespace HajoProgram
{
internal class Hajo
{
public string Tulaj { get; set; }
public int Hely { get; set; }
public string Tipus { get; set; }
// Alapértelmezett konstruktor: láncolt hívás a paraméteresre
public Hajo() : this("*nincs", -1, "*nem ismert")
{
}
public Hajo(string tulaj, int hely, string tipus)
{
Tulaj = tulaj;
Hely = hely;
Tipus = tipus;
}
public override string ToString()
{
return $"Hajo{{tulaj:{Tulaj}, hely:{Hely}, tipus:{Tipus}}}";
}
}
}
Gyakorlat: Vonal Program
Megtanultuk, hogyan számoljuk ki két pont távolságát, ahol a Vonal objektum két Pont objektumot tartalmazott.