Kihagyás

Objektumok

Nyílt rekurzió

Az objektum mindig látja saját magát, eléri metódusaiban az adattagjait és metódusait

Tervezés példa - Sokszögek

Feladat

Pont modellezése

Feladat - Pont modellezése

Pont megvalósítása - C#

class Point
{
    public double X, Y;

    public Point(double x = 0.0, double y = 0.0)
    {
        X = x; Y = y; 
    }

    public void SetPoint(double x, double y)
    { 
        X = x; Y = y; 
    }

    public override string ToString()
    { 
        return string.Format($"({X:0.0#},{Y:0.0#})"); 
    }

    public static Point operator +(Point a, Point b)
    { 
        return new Point(a.X + b.X, a.Y + b.Y);
    }

    public static Point operator /(Point a, int n)
    { 
        return new Point(a.X / n, a.Y / n); 
    }
}

Sokszög modellezése

Példa - Sokszög

Sokszög osztály

Sokszög osztály

Sokszög megvalósítása

class Polygon
{
    class FewVerticesException : Exception { }

    private readonly Point[] vertices;

    public Polygon(int m)
    {
        if (m < 3) throw new FewVerticesException();
        vertices = new Point[m];
        for (int i = 0; i < m; ++i) 
        {
            vertices[i] = new Point();
        }
    }

    public int Sides {  }
    public Point this[int i] {  }
    public override string ToString() {  }

    public void Shift(Point e) {  }
    public Point Centroid() {  }
}

Példányosítás

Avagy az alkalmazás felpopulálása

Objektum fogalma - Modellezési szempont

  • Egy egy felelőségi körrel bíró önálló egyed
  • Egységbe zárja a felelősségi köréhez tartozó adattagokat és metódusokat
    • Egy részüket el is rejti
  • Van életciklusa
    • Létrejön, majd meg is szűnik

Objektum fogalma - Megvalósítási szempont

  • Egy memóriaszelet, ahol az objektumhoz tartozó adatokat tároljuk
    • A metódusokat csak objektum-típusonként
  • Adattagjainak és metódusainak láthatósági köre szabályozható igény szerint
  • Életciklusáért a konstruktor és a destruktor felel

Sokszök példányosítás

Példányosítás - Sokszök

Főprogram

Főprogram - Példa