Přístup k modifikátorům (specifikátorům) v C# s příklady programů
Co je modifikátor přístupu (specifikátor) v C#?
Modifikátory přístupu nebo Specifikátory přístupu v C# jsou klíčová slova používaná k definování viditelnosti vlastnosti třídy nebo metody. Používá se, když nechcete, aby ostatní programy viděly vlastnosti nebo metody třídy. Modifikátory přístupu omezují přístup, takže jiné programy nemohou vidět vlastnosti nebo metody třídy.
V C# existuje 6 typů modifikátorů přístupu:
- soukromý
- Veřejné
- Chráněný
- Interní
- Chráněné vnitřní
- Soukromé chráněné
Dozvíme se o hlavních modifikátorech přístupu v C# s příklady programů, jak je vysvětleno níže.
Modifikátory soukromého přístupu v C#
Když je modifikátor soukromého přístupu připojen k vlastnosti nebo metodě, znamená to, že k těmto členům nelze přistupovat z žádného externího programu.
Příklad modifikátoru soukromého přístupu
Vezměme si příklad a uvidíme, co se stane, když použijeme modifikátor soukromého přístupu.
Upravme aktuální kód v našem souboru Tutorial.cs. V metodě SetTutorial změňme klíčové slovo public na private.
Nyní přejdeme na náš soubor Program.cs. Všimnete si, že pod metodou SetTutorial je červená klikatá čára.
Protože jsme nyní deklarovali metodu SetTutorial jako soukromou v naší třídě Tutorial, Visual Studio to zjistilo. Upozornil uživatele, že nyní tato metoda nebude fungovat ze souboru Program.cs.
Modifikátory veřejného přístupu C#
Když je modifikátor veřejného přístupu připojen k vlastnosti nebo metodě, znamená to, že k těmto členům lze přistupovat z jakéhokoli externího programu. Už jsme to viděli v našich dřívějších příkladech.
Příklad modifikátoru veřejného přístupu
Protože jsme naše metody definovali jako veřejné ve třídě Tutorial, lze k nim přistupovat ze souboru Program.cs.
Modifikátory chráněného přístupu v C#
Když je modifikátor chráněného přístupu připojen k vlastnosti nebo metodě, znamená to, že k těmto členům může přistupovat pouze uživatel třídy zděděné z proudu třída. To bude podrobněji vysvětleno ve třídě Dědičnost.
Modifikátory vnitřního přístupu C#
Když je modifikátor vnitřního přístupu připojen k vlastnosti nebo metodě, k těmto členům může přistupovat pouze interní program, ale nikoli externí program.
C# konstruktor
C# Konstruktory se používají k inicializaci hodnot polí tříd při vytváření jejich odpovídajících objektů. Konstruktor je metoda, která má stejný název jako třída. Pokud je konstruktor definován ve třídě, poskytne první metodu, která je volána při vytvoření objektu. Předpokládejme, že bychom měli třídu s názvem Zaměstnanec. Metoda konstruktoru by se také jmenovala jako Employee().
O metodách konstruktoru je třeba poznamenat následující klíčové věci
- Výchozí modifikátor přístupu C# pro konstruktor musí být nastaven jako veřejný.
- Pro metodu konstruktoru by neměl být žádný návratový typ.
Příklad C# konstruktoru
Podívejme se nyní, jak můžeme začlenit uživatele konstruktorů do našeho kódu. Při vytváření objektu použijeme konstruktory k inicializaci polí TutorialID a TutorialName na některé výchozí hodnoty.
Krok 1) Prvním krokem je vytvoření konstruktoru pro naši třídu Tutorial. V tomto kroku přidáme níže uvedený kód do souboru Tutorial.cs.
Vysvětlení kódu:-
- Nejprve přidáme novou metodu, která má stejný název jako třída. Protože se jedná o stejný název jako třída, C# s tím zachází jako s metodou konstruktoru. Kdykoli tedy volající metoda vytvoří objekt této třídy, bude tato metoda standardně volána.
- V konstruktoru Tutorial nastavujeme hodnotu TutorialID na 0 a TutorialName na „Výchozí“. Kdykoli je tedy vytvořen objekt, tato pole budou mít vždy tyto výchozí hodnoty.
Nyní se přepněte na náš soubor Program.cs a jednoduše odstraňte řádek, který volá metodu SetTutorial. Je to proto, že chceme jen vidět, jak konstruktor funguje.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { public int TutorialID; public string TutorialName; public Tutorial() { TutorialID=0; TutorialName="Default"; } public void SetTutorial(int pID,string pName) { TutorialID=pID; TutorialName=pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Tutorial pTutor=new Tutorial(); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
Vysvětlení kódu:-
- Prvním krokem je vytvoření objektu pro třídu Tutorial. To se provádí pomocí klíčového slova 'new'.
- K získání TutorialName používáme metodu GetTutorial třídy Tutorial. To se pak zobrazí konzoli pomocí metody Console.WriteLine.
Pokud je výše uvedený kód zadán správně a program je spuštěn, zobrazí se následující výstup.
Výstup:
Z výstupu můžeme vidět, že konstruktor byl skutečně volán a že hodnota TutorialName byla nastavena na „Default“.
Poznámka: Zde je hodnota „default“ načtena z konstruktoru.
Shrnutí
- C# Access Modifiers nebo Access Specifiers se používají k definování viditelnosti vlastnosti třídy nebo metody.
- Když je modifikátor soukromého přístupu připojen k vlastnosti nebo metodě, znamená to, že k těmto členům nelze přistupovat z žádného externího programu.
- Když je modifikátor veřejného přístupu připojen k vlastnosti nebo metodě, znamená to, že k těmto členům lze přistupovat z jakéhokoli externího programu.
- Když je modifikátor chráněného přístupu připojen k vlastnosti nebo metodě, znamená to, že k těmto členům mohou přistupovat pouze třídy zděděné z aktuální třídy.
- Když je modifikátor vnitřního přístupu připojen k vlastnosti nebo metodě, k těmto členům může přistupovat pouze interní program, ale nikoli externí program.
- Konstruktory C# se používají k inicializaci hodnot polí tříd při vytváření jejich odpovídajících objektů.