OOP põhialused

Objektorienteeritud programmeerimine (OOP) põhineb objektidel, mis ühendavad andmed ja nende töötlemise meetodid.


Klass on mall, mis kirjeldab objekti omadusi ja käitumist.

public class Inimene
{
    public string Nimi;
    public int Vanus;

    public void Tervita()
    {
        Console.WriteLine("Tere! Mina olen " + Nimi);
    }
}

Objekt on konkreetne klassi eksemplar, millel on oma olek ja käitumine.

var inimene = new Inimene();

Meetodid määravad, milliseid tegevusi objekt saab teha.

inimene.Tervita();

Pärimine võimaldab alamklassidel pärida omadusi ja käitumist ülemklassilt ning neid täiendada või muuta.

public class Töötaja : Inimene
{
    public string Ametikoht;

    public void Töötan()
    {
        Console.WriteLine($"{Nimi} töötab ametikohal {Ametikoht}.");
    }
}

Abstraktsioon lihtsustab keerulisi süsteeme, keskendudes olulistele detailidele ja varjates üleliigset.

public abstract class Loom
{
    public string Nimi { get; set; }

    public abstract void TeeHääl(); // peab üle kirjutama

    public void Söö()
    {
        Console.WriteLine($"{Nimi} sööb.");
    }
}

Kapseldamine peidab objekti sisemise töö ning eksponeerib ainult vajaliku liidese.

public class Pank
{
    private double saldo;

    public double Saldo
    {
        get { return saldo; }
        set
        {
            if (value >= 0)
                saldo = value;
        }
    }
}

Polümorfism võimaldab erinevat tüüpi objektidel reageerida samanimelistele meetoditele erinevalt, võimaldades ühtset käsitlemist.

public class Koer : Loom
{
    public override void TeeHääl()
    {
        Console.WriteLine("Koer ütleb: Hau!");
    }
}