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í.