Objektově orientované programování je jedním z nejpopulárnějších programovacích paradigmat. Je to proto, že modeluje data i funkce a umožňuje vám uvažovat v podmínkách objektů reálného světa. Třídy jsou základním aspektem objektově orientovaného programování, protože poskytují plán, který potřebujete k vytváření objektů.

C# je populární multiparadigmatický programovací jazyk, který používá objektově orientované paradigma. V tomto článku se dozvíte, jak vytvářet a používat třídy v C#.

Vytvoření třídního prohlášení

V C# je třída referenčním typem, který bude obsahovat nula hodnotu, dokud nevytvoříte nový objekt třídy. K vytvoření nové třídy v C# budete potřebovat několik komponent:

  • Modifikátor přístupu.
  • The třída klíčové slovo.
  • Jméno, které chcete třídě přiřadit.
  • Pár otevřených a zavřených složených závorek (které budou uzavírat atributy, konstruktory a metody třídy).
vnitřní třídaZákazník{ }

Výše uvedený kód vytvoří novou třídu, která je přístupná ostatním třídám ve stejném sestavení (souboru kompilace). C# má přesně šest modifikátorů přístupu, které můžete použít k ovládání úrovní přístupnosti vašich tříd, proměnných a metod. Těchto šest modifikátorů přístupu je:

  • veřejnost: každá třída (bez ohledu na její sestavení) má přístup k veřejné třídě a jejím veřejným členům (atributy, konstruktory a metody).
  • soukromé: přístup k ní má pouze soukromá třída a její členové.
  • chráněný: k chráněné třídě mají přístup pouze odvozené třídy (třídy dětí a vnoučat).
  • vnitřní: k interní třídě mají přístup pouze třídy ve stejném sestavení.
  • chráněný vnitřní: k chráněné interní třídě mají přístup pouze třídy ve stejném sestavení nebo odvozená třída z jiného sestavení.
  • soukromé chráněné: k soukromé chráněné třídě mají přístup pouze odvozené třídy ve stejném sestavení.

Deklarování a přístup k atributům

Atributy jsou stavební kameny pro třídy, které vytvoříte. Mají citlivá data a obvykle mají modifikátor soukromého nebo chráněného přístupu. Proto pro přístup k těmto třídám z externích tříd byste museli použít přístupové objekty a mutátory (gettery a settery).

C# vám umožňuje deklarovat vaše atributy, mutátory a přístupové objekty následovně:

vnitřní třídaZákazník
{
// atributy
soukroméint Identifikační číslo;
soukromé řetězec Jméno;
soukromédvojnásobek Celkový;

// seřizovači
veřejnostprázdnotaSetIdNumber(int Identifikační číslo){ tento.IdNumber = IDNumber; }
veřejnostprázdnotaSetName(název řetězce){ tento.Jméno = Jméno; }
veřejnostprázdnotaSetTotal(dvojnásobek Celkový){ tento.Celkem = Celkem; }

// getters
veřejnostintGetIdNumber(){ vrátit setento.Identifikační číslo; }
veřejnost tětiva GetName(){ vrátit setento.Název; }
veřejnostdvojnásobekGetTotal(){ vrátit setento.Celkový; }
}

Jiné populární objektově orientované jazyky použijte také výše uvedený přístup. Vlastně, pokud chcete vytvářet třídy Java, budete muset použít výše uvedenou strukturu. C# však nyní nabízí jednodušší způsob vytváření atributů a přístupových objektů. V C# má tato třída stejnou funkci jako výše:

vnitřní třídaZákazník
{
public int IdNumber { dostat; soubor; }
public string Name { dostat; soubor; }
public double Total { dostat; soubor; }
}

Výše uvedená třída obsahuje to, co C# volá vlastnosti, což je kombinace atributů (polí) a metod. S vlastnosti, můžete snížit kód deklarace atributů, mutátorů a přístupových objektů na polovinu.

Vyhlášení konstruktérů

Konstruktoři jsou dalším základním aspektem třídy. Chcete-li vytvořit objekt z třídy, budete muset zavolat jeden z jejích konstruktorů. Každý konstruktor má volitelný modifikátor přístupu a stejný název jako jeho třída. Pro objektově orientované programovací jazyky existují obecně tři typy konstruktorů:

  • Výchozí konstruktor: nebere žádné argumenty a poskytuje každému atributu výchozí hodnotu.
  • Primární konstruktor: přebírá jeden nebo více argumentů (v závislosti na počtu proměnných ve třídě).
  • Kopírovat konstruktor: bere jako argument jiný konstruktor.

C# má výše uvedený zastřešující termín pro výchozí a primární konstruktory – konstruktory instancí. Tento programovací jazyk má také dva další konstruktory (soukromý a statický). Tento článek se zaměřuje na tři tradiční konstruktory.

Výchozí konstruktor

// výchozí konstruktor
veřejnost Zákazník()
{
IdNumber = 0;
Jméno = "neznámý";
Celkem = 0;
}

Primární konstruktor

// primární konstruktor
veřejnostZákazník(int IdNumber, string Name, string CustomerType, dvojnásobek Celkový)
{
tento.IdNumber = IDNumber;
tento.Jméno = Jméno;
tento.Celkem = Celkem;
}

Kopírovat konstruktor

// kopírování konstruktoru
veřejnost Zákazník (předchozí zákazník)
{
tento.IdNumber = předchozíZákazník. Identifikační číslo;
tento.Jméno = předchozíZákazník. Název;
tento.Celkem = předchozíZákazník. Celkový;
}

Vytváření metod

Metody nejsou zásadní složkou třídy, ale jsou užitečné. Třída může mít jednu nebo více metod. Metoda má modifikátor přístupu, návratový typ, název a tělo.

// metoda
veřejnost řetězec CustomerDetail()
{
vrátit se " ID: " + IDNumber + " Název: " + Jméno + " Celkový: " + Celkem;
}

Výše uvedený kód vrací řetězcovou reprezentaci objektu zákazníka.

Vytváření objektů

Po vytvoření kompletní třídy, jejím vybavení atributy, konstruktory a metodou, můžete začít vytvářet objekty pomocí různých konstruktorů. Chcete-li vytvořit objekt bez atributů, můžete použít výchozí konstruktor:

Zákazník John = Nový Zákazník();

Řádek kódu výše vytvoří výchozího zákazníka a přiřadí jej k proměnné nazvané John. S John, máte přístup k výchozí hodnotě každého atributu zákazníka.

Řídicí panel.WriteLine(John.Název);

Spuštěním výše uvedeného kódu se v konzole vytiskne následující:

Neznámý

Můžete také použít John proměnnou pro přístup k jakékoli metodě ve třídě zákazníků.

Řídicí panel.WriteLine(John.CustomerDetail());

Spuštěním výše uvedeného řádku kódu se v konzole vytiskne následující výstup:

ID: 0 Jméno: neznámé Celkem: 0

K vytvoření objektu s atributy byste použili primární konstruktor:

Zákazník John = nový zákazník (1001, "John Doe", 250.20);
Řídicí panel.WriteLine(John.CustomerDetail());

Spuštěním výše uvedeného kódu se v konzole vytiskne následující výstup:

ID: 1001 název: JohnSrnaCelkový: 250.2

Chcete-li vytvořit kopii výše uvedeného objektu, můžete použít konstruktor kopírování:

Zákazník Johnny = Nový Zákazník (Jan);
Řídicí panel.WriteLine(Johnny.CustomerDetail());

Spuštěním výše uvedeného kódu se v konzole vytiskne následující výstup:

ID: 1001 název: JohnSrnaCelkový: 250.2

Jak můžete vidět, kopírovací konstruktor je kopií primárního konstruktoru. Kopírovací konstruktor může také použít výchozí konstruktor jako argument:

Zákazník John = Nový Zákazník();
Zákazník Johnny = Nový Zákazník (Jan);
Řídicí panel.WriteLine(Johnny.CustomerDetail());

Spuštěním výše uvedeného kódu se v konzole vytiskne následující výstup:

ID: 0 Jméno: neznámé Celkem: 0

Nyní můžete vytvářet a používat třídy C#

Objektově orientované paradigma v C# můžete použít k definování tříd a vytváření objektů z nich. Pro každou třídu můžete vytvořit metody, které pak mohou pracovat s atributy jejich objektů.

Objektově orientované paradigma však není jediné, se kterým se musíte seznámit. První tři programovací paradigmata jsou imperativní, objektově orientovaná a funkční.