Posted in

C# class

Klass

  • Klass on mall või plaan, mille põhjal luuakse objekte.
  • Kirjeldab omadusi (välju) ja tegevusi (meetodeid).
public class Inimene
{
    public string Nimi;
    public int Vanus;
    public void Tervita()
    {
        Console.WriteLine("Tere! Mina olen " + Nimi);
    }
}

Pärilus (inheritance)

  • Võimaldab luua uue klassi olemasoleva põhjal.
  • Alamklass pärib kõik vanema omadused ja meetodid.
  • Võimalik laiendada või muuta käitumist.
public class Töötaja : Inimene
{
    public string Ametikoht;
    public void Töötan()
    {
        Console.WriteLine($"{Nimi} töötab ametikohal {Ametikoht}.");
    }
}

Abstraktsioon (abstraction)

  • Peidab keerulise loogika ja näitab ainult vajalikku infot.
  • Kasutatakse abstraktsete klasside ja liideste abil.
public abstract class Loom
{
    public string Nimi;
    public abstract void TeeHääl();
}
public class Koer : Loom
{
    public override void TeeHääl()
    {
        Console.WriteLine("Auh-auh!");
    }
}

Kapseldamine (encapsulation)

  • Andmete peitmine otse ligipääsu eest.
  • Kasutatakse private välju ja public omadusi (get/set).
  • Kontrollib, kuidas andmeid muudetakse.
public class Pank
{
    private double saldo;
    public double Saldo
    {
        get { return saldo; }
        set
        {
            if (value >= 0)
                saldo = value;
        }
    }
}

Liides (interface)

  • Kirjeldab ainult meetodite allkirjadei sisalda loogikat.
  • Klassi, mis rakendab liidest, kohustab neid meetodeid defineerima.
  • Võimaldab mitut “päritud” tüüpi.
public interface IHeliline
{
    void TeeHääl();
}
public class Kass : IHeliline
{
    public void TeeHääl()
    {
        Console.WriteLine("Mjäu!");
    }
}

Kokkuvõte

MõisteKirjeldus
KlassMall objektide loomiseks.
PärilusAlamklass pärib vanema omadused ja meetodid.
AbstraktsioonPeidab detailid, näitab vaid olulist.
KapseldamineAndmete kaitse, kontrollitud ligipääs.
Liides (interface)Nagu leping – määrab, millised meetodid peavad olemas olema.

Näide kasutuses:

public interface ITööline
{
    double ArvutaPalk();
}
public class Töötaja : Inimene, ITööline
{
    public double Tunnitasu;
    public int Tunnid;
    public double ArvutaPalk()
    {
        return Tunnitasu * Tunnid;
    }
    public override string ToString()
    {
        return $"{Nimi}, Vanus: {Vanus}, Palk: {ArvutaPalk()}";
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *