Sdílet prostřednictvím


Objekty a třídy v jazyce Visual Basic

Objektu je kombinací kódu a dat, která lze považovat za jednotku.Objekt může být část aplikace, jako například ovládací prvek nebo formulář.Objekt může být také celou aplikaci.

Při vytváření aplikace v Visual Basic, neustále pracovat s objekty.Objekty můžete použít Visual Basic, jako jsou například ovládací prvky formulářů a dat přístup k objektům.Můžete také použít objekty z jiných aplikací v rámci vašeho Visual Basic aplikace.Můžete dokonce vytvořit vlastní objekty a definovat další vlastnosti a metody pro ně.Objekty fungují jako montované stavební bloky pro programy – umožňují zápis část kódu a znovu použít opakovaně.

Toto téma popisuje objekty podrobně.

Objekty a třídy

Každý objekt v Visual Basic je definován třídy.Třída popisuje proměnné, vlastnosti, postupy a události objektu.Objekty jsou instance tříd; můžete vytvořit tolik objekty, které je nutné po třídu.

Chcete-li pochopit vztah mezi objektem a jeho třída Představte řezačky souborů cookie a souborů cookie.Ořezávání souboru cookie je třída.Definuje charakteristiky každý soubor cookie, například velikost a tvar.Třída slouží k vytvoření objektů.Objekty jsou soubory cookie.

Je nutné vytvořit objekt nejprve jeho členů.

Vytvoření objektu z třídy

  1. Určete ze třídy, které chcete vytvořit objekt.

  2. Zápis Dim prohlášení (Visual Basic) vytvořit proměnnou, ke kterému lze přiřadit instanci třídy.Musí být proměnná typu požadované třídy.

    Dim nextCustomer As customer 
    
  3. Přidat Nový operátor (Visual Basic) klíčové slovo inicializovat proměnné do nové instance třídy.

    Dim nextCustomer As New customer
    
  4. Nyní máte přístup členové třídy pomocí objektové proměnné.

    nextCustomer.accountNumber = lastAccountNumber + 1
    

[!POZNÁMKA]

Je to možné, by měla deklarovat proměnnou typu třídy, kterou chcete přiřadit k ní.To se nazývá časné vazby.Pokud neznáte třídy, zadejte v době kompilace, můžete vyvolat pozdní vazba deklarováním proměnné se Datový typ objektu.Však pozdní vazbu lze provést pomalejší výkon a omezit přístup k objektu spuštění členy.Další informace naleznete v tématu Deklarace proměnné objektu (Visual Basic).

527aztek.collapse_all(cs-cz,VS.110).gifVíce instancí

Nově vytvořené z třídy objektů jsou často stejné.Jakmile existují jako jednotlivé objekty, ale jejich proměnných a vlastností lze změnit nezávisle na ostatních instancí.Pokud do formuláře přidat tři políčka, každý objekt zaškrtávací políčko je například instance CheckBox třídy.Jednotlivé CheckBox objekty sdílejí společnou sadu vlastností a schopností (vlastnosti, proměnné, postupy a události) definice třídy.Však každý má svůj vlastní název, lze samostatně povoleno a zakázáno a mohou být umístěny do jiného umístění ve formuláři.

Členové objektu

Objekt je prvek aplikace, představující instance třídy.Pole, vlastnosti, metody a události jsou stavebními bloky objekty a tvoří jejich členy.

527aztek.collapse_all(cs-cz,VS.110).gifČlen přístup

Přístup členského objektu v pořadí, zadáte název proměnné objektu období (.) a název člena.Následující příklad nastaví Text vlastnosti Label objektu.

warningLabel.Text = "Data not saved"

527aztek.collapse_all(cs-cz,VS.110).gifTechnologie IntelliSense výpis členů

Technologie IntelliSense uvádí členy třídy vyvolat možnost jeho seznam členů, například v případě zadejte tečku (.) jako člen access operátor.Pokud zadejte následující název proměnné deklarované jako instance třídy období seznam IntelliSense všechny instance členy a žádný z členů sdílené.Pokud zadejte následující název třídy samotné období seznam IntelliSense sdílené členy a žádný z členů instance.Další informace naleznete v tématu Pomocí technologie IntelliSense.

527aztek.collapse_all(cs-cz,VS.110).gifPole a vlastnosti

Pole a Vlastnosti představují informace uložené v objektu.Načtení a nastavte jejich hodnoty s příkazy přiřazení stejným způsobem načíst a nastavit místní proměnné v proceduře.Následující příklad načte Width vlastnosti a sady ForeColor vlastnosti Label objektu.

Dim warningWidth As Integer = warningLabel.Width
warningLabel.ForeColor = System.Drawing.Color.Red

Poznámka: pole Zkratka členské proměnné.

Použít vlastnost postupy při:

  • Je nutné určit, kdy a jak je nastavit nebo načíst hodnotu.

  • Vlastnost má přesně sadu hodnot, které je třeba ověřit.

  • Nastavení hodnoty způsobí znatelné změny ve stavu objektu, například IsVisible vlastnost.

  • Nastavení vlastnosti způsobí změny jiné vnitřní proměnné nebo hodnoty dalších vlastností.

  • Sadu kroků musí být provedeny před vlastnost můžete nastavit nebo načíst.

Použití pole při:

  • Hodnota je typu samoověřující se.Například Chyba nebo automatické data převodu dojde jinou hodnotu než True nebo False je přiřazen Boolean proměnné.

  • Všechny hodnoty v oblasti podporovaný typ dat je platný.Je to mnoho vlastností typu Single nebo Double.

  • Vlastnost je String typ dat a neexistuje žádné omezení velikosti nebo hodnota řetězce.

  • Další informace naleznete v tématu Vlastnost postupy (Visual Basic).

527aztek.collapse_all(cs-cz,VS.110).gifMetody

A metody je akce, kterou objekt může provádět.Například Add je metoda ComboBox objekt, který přidá novou položku do pole se seznamem.

Následující příklad ukazuje Start metodou Timer objektu.

Dim safetyTimer As New System.Windows.Forms.Timer
safetyTimer.Start()

Všimněte si, že metoda je jednoduše postup , je vystaven objekt.

Další informace naleznete v tématu Procedury v jazyce Visual Basic.

527aztek.collapse_all(cs-cz,VS.110).gifUdálosti

Událost je Akce rozpoznávaná objektem, jako je například klepnutí myší nebo stisknutí klávesy a pro které můžete zapsat kód reagovat.Události může dojít v důsledku akce uživatele nebo programový kód nebo mohou být způsobeny systému.Kód, který signalizuje událost zvýšení událostí a kódu, který odpoví, je takzvaně zpracování ji.

Také lze vytvářet vlastní události vzniklé objekty a zpracovávány dalšími objekty.Další informace naleznete v tématu Události (Visual Basic).

527aztek.collapse_all(cs-cz,VS.110).gifČlenové instance a sdílené

Při vytvoření objektu z třídy, výsledkem je instance dané třídy.Členy, které není deklarována pomocí Sdílené (Visual Basic) jsou Členové instance, které nezbytně patří zejména instanci.Instanci v jedné instanci člena je nezávislá stejný člen v jiné instanci stejné třídy.Instanci členské proměnné můžete mít například různé hodnoty v různých případech.

Členové deklarována s Shared jsou Sdílené členy, které patří do třídy jako celku a jakékoli konkrétní instanci.Sdílený člen existuje pouze jednou bez ohledu na to, kolik instancí třídy jeho vytvoření nebo vytvořit žádné instance.Sdílené členské proměnné, například má pouze jednu hodnotu, která je k dispozici všechny kód, který můžete přistupovat k třídě.

527aztek.collapse_all(cs-cz,VS.110).gifPřístup k sdíleném členů

Přístup k objektu sdíleném člen

  1. Přesvědčte se, zda objekt byl vytvořen z jeho třídy a přiřazena objektové proměnné.

    Dim secondForm As New System.Windows.Forms.Form
    
  2. Podle v příkazu přistupující členské proměnné Název objektu s operátor přístupu členských (.) a pak název členu.

    secondForm.Show()
    

527aztek.collapse_all(cs-cz,VS.110).gifPřístup ke sdílené členy

Přístup k objektu sdílený člen

  • Postupujte s názvem třídy operátor přístupu členských (.) a pak název členu.Vždy měli přístup Shared členský objekt přímo pomocí názvu třídy.

    MsgBox("This computer is called " & Environment.MachineName)
    
  • Pokud jste již vytvořili objekt ze třídy, můžete také přístup Shared člen prostřednictvím proměnné objektu.

527aztek.collapse_all(cs-cz,VS.110).gifRozdíly mezi třídy a moduly

Hlavní rozdíl mezi moduly tříd a je třídy může být vytvořena jako objekty při standardní moduly nelze.Protože jedna část programu změní veřejné proměnné ve standardním modulu je pouze jednu kopii dat standardní modul, součástí programu získá stejnou hodnotu Pokud přečte této proměnné.Na rozdíl od data objektu existuje odděleně pro každou vytvořenou instanci objektu.Dalším rozdílem je, že na rozdíl od standardní moduly třídy mohou implementovat rozhraní.

[!POZNÁMKA]

Když Shared u modifikátor člen třídy, je spojen s namísto konkrétní instanci třídy samotné třídy.Člen je přistupovat přímo pomocí názvu třídy, jsou přístupné stejné členy modul způsobem.

Třídy a moduly také použít různé obory pro své členy.V rámci třídy definované členy jsou obor v rámci konkrétní instanci třídy a existují pouze po dobu životnosti objektu.Členy třídy z mimo třídu přístup, je nutné použít plně kvalifikované názvy ve formátu objektu.Member.

Na druhé straně členů deklarována v rámci modulu jsou veřejně přístupné ve výchozím nastavení a přístupná kódem, který přístup k modulu.To znamená, že proměnné ve standardním modulu jsou účinně globální proměnné, protože jsou viditelné z libovolného místa v projektu a dobu trvání programu existují.

Opětovné použití třídy a objekty

Objekty umožňují deklarování proměnných a procedur jednou a potom znovu kdykoli v případě potřeby.Například pokud chcete přidat do aplikace kontrolu pravopisu můžete definovat všechny proměnné a podporují funkce funkcí kontrola pravopisu.Pokud funkce kontroly pravopisu jako třída vytvoříte, můžete je znovu ji v jiných aplikacích přidáte odkaz na sestavení zkompilovaných.Ještě lepší je možné uložit některé práce pomocí třídy Kontrola pravopisu, že někdo jiný již vyvinula sami.

.NET Framework Obsahuje mnoho příkladů komponenty, které jsou k dispozici pro použití.V následujícím příkladu TimeZone třídy v System oboru názvů.TimeZoneobsahuje členy, které umožňují získat informace o časové pásmo počítače aktuální.

Public Sub examineTimeZone()
    Dim tz As System.TimeZone = System.TimeZone.CurrentTimeZone
    Dim s As String = "Current time zone is "
    s &= CStr(tz.GetUtcOffset(Now).Hours) & " hours and "
    s &= CStr(tz.GetUtcOffset(Now).Minutes) & " minutes "
    s &= "different from UTC (coordinated universal time)"
    s &= vbCrLf & "and is currently "
    If tz.IsDaylightSavingTime(Now) = False Then s &= "not "
    s &= "on ""summer time""."
    MsgBox(s)
End Sub

V předchozím příkladu první Dim prohlášení (Visual Basic) deklaruje proměnnou objekt typu TimeZone a přiřadí ji TimeZone objekt vrácený CurrentTimeZone vlastnost.

Vztahy mezi objekty

Objekty můžete související navzájem několika způsoby.Jsou hlavní druhy vztah hierarchické a uzavření.

527aztek.collapse_all(cs-cz,VS.110).gifHierarchické struktury

Při třídy jsou odvozeny z více základních tříd, jsou označeny mít hierarchické struktury.Hierarchie třídy jsou užitečné při popisování položky, které jsou podtyp obecnější třídy.

V následujícím příkladu předpokládejme chcete definovat zvláštní druh Button , že pracuje jako normální Button , ale také zpřístupní metodu, která překlopí barvy popředí a pozadí.

Definovat třídy odvozené z již existující třídy

  1. Použití Příkaz class (Visual Basic) definovat třídu, ze které chcete vytvořit objekt potřebujete.

    Public Class reversibleButton

    Ujistěte se, End Class prohlášení následuje poslední řádek kódu ve své třídě.Jako výchozí integrované vývojové prostředí (IDE) automaticky generuje End Class při zadávání Class prohlášení.

  2. Postupujte Class příkaz okamžitě Dědí prohlášení.Určete třídu, ze kterého je odvozen nové třídy.

    Inherits System.Windows.Forms.Button

    Nová třída dědí všechny členy definované ve třídě base.

  3. Přidáte kód pro další členy vzniká v odvozené třídě.Můžete například přidat reverseColors metoda a odvozené třídy může vypadat takto:

    Public Class reversibleButton
        Inherits System.Windows.Forms.Button
        Public Sub reverseColors() 
            Dim saveColor As System.Drawing.Color = Me.BackColor
            Me.BackColor = Me.ForeColor
            Me.ForeColor = saveColor
        End Sub
    End Class 
    

    Pokud vytvoříte objekt ze reversibleButton třídy, má přístup ke všem členům Button třídy, jakož i reverseColors metoda a nové členy lze definovat na reversibleButton.

Odvozené třídy dědí ze třídy, které jsou založeny na, umožňuje přidat složitost průběhu v hierarchii třídy členů.Další informace naleznete v tématu Základy dědičnosti (Visual Basic).

527aztek.collapse_all(cs-cz,VS.110).gifProbíhá kompilace kódu

Musí být že kompilátoru můžete přistupovat k třídě hodláte odvodit nové třídy.To může znamenat plně kvalifikované jeho název, jako v předchozím příkladu nebo identifikující jeho obor názvů v Importuje příkaz (.NET oboru názvů a typ).Třída je v jiném projektu, můžete přidat odkaz na tento projekt.Další informace naleznete v tématu Správa projektu odkazy.

527aztek.collapse_all(cs-cz,VS.110).gifVztah k uzavření

Jiným způsobem může souviset objektů je obsahování.Objekty kontejneru logicky zapouzdřit jiné objekty.Například OperatingSystem logicky obsahuje objekt Version objekt, který vrací prostřednictvím jeho Version vlastnost.Všimněte si, že objekt kontejneru fyzicky neobsahuje žádný další objekt.

527aztek.collapse_all(cs-cz,VS.110).gifKolekce

Konkrétní druh uzavření objektu je reprezentován kolekce.Kolekce jsou skupiny podobných objektů, které lze provést výčet.Visual Basicpodporuje specifické syntaxe Pro každý...Další příkaz (Visual Basic) , které umožňuje iteraci v kolekci položek.Navíc kolekce často umožňují používat Item načíst prvků jejich indexu nebo přidružení jedinečný řetězec.Kolekce může být snadnější použití než pole, protože umožňují přidat nebo odebrat položky bez použití indexů.Z důvodu jejich snadné použití kolekce často používá k ukládání formuláře a ovládací prvky.

Příbuzná témata