Obiekty i klasy w Visual Basic

Obiektu jest kombinacja kodu i danych, które mogą być traktowane jako jednostka.Obiekt może być fragment aplikacji, takich jak formantu lub formularza.Całej aplikacji można także obiektu.

Podczas tworzenia aplikacji w Visual Basic, stale pracy z obiektami.Można użyć obiektów dostarczanych przez Visual Basic, takie jak formanty formularzy i danych dostępu do obiektów.Umożliwia także obiekty z innych aplikacji w ramach programu Visual Basic aplikacji.Można nawet tworzyć swoje własne obiekty i zdefiniować dodatkowe właściwości i metody dla nich.Obiekty działają jak prefabrykowane elementy konstrukcyjne programy — umożliwiają one jednokrotnego zapisu fragment kodu i częstego ponownego użycia.

W tym temacie omówiono obiektów szczegółowo.

Obiekty i klasy

Każdy obiekt w Visual Basic jest zdefiniowany przez klasy.Klasa zawiera opis zmiennych, właściwości, procedur i zdarzeń obiektu.Obiekty są wystąpieniami klasy; można utworzyć tyle obiektów, potrzebne po zdefiniowaniu klasy.

Aby zrozumieć relacji między obiektem a jego klasy, traktować sieczkarnie cookie i plików cookie.Czyszczenie krajarki plik cookie jest klasą.Definiuje właściwości każdy plik cookie, na przykład rozmiaru i kształtu.Klasa jest używana do tworzenia obiektów.Obiekty są pliki cookie.

Zanim dostęp do swoich członków, należy utworzyć obiekt.

Aby utworzyć obiekt z klasy

  1. Ustalenia z klasy, które chcesz utworzyć obiekt.

  2. Zapis Dim — Instrukcja (Visual Basic) utworzyć zmienną, do której można przypisać instancję klasy.Zmienna powinny być typu żądanej klasy.

    Dim nextCustomer As customer
    
  3. Dodaj New — Operator (Visual Basic) słowo kluczowe, aby zainicjować zmienną do nowej instancji klasy.

    Dim nextCustomer As New customer
    
  4. Członkowie klasy można uzyskać dostęp za pośrednictwem zmiennej obiektu.

    nextCustomer.accountNumber = lastAccountNumber + 1
    

[!UWAGA]

O ile to możliwe, należy zadeklarować zmiennej typu klasy, który chcesz przypisać do niego.Jest to wczesnego wiązania.Jeśli nie znasz klasy, wpisz w czasie kompilacji, można wywołać późnego wiązania przez zadeklarowanie zmiennej za Object — typ danych.Jednak późnym wiązaniem można wprowadzić wydajności wolniejsze i ograniczyć dostęp do obiektu run-time członków.Aby uzyskać więcej informacji, zobacz Deklaracja zmiennej obiektu (Visual Basic).

Wiele wystąpień

Nowo utworzony z klasy obiektów często są identyczne z sobą.Po jako pojedyncze obiekty, istnieją jednak właściwości i zmiennych można zmienić niezależnie od innych wystąpień.Na przykład, jeśli trzy pola wyboru można dodać do formularza, każdy obiekt pole wyboru jest instancją CheckBox klasy.Osoby CheckBox obiekty mają wspólny zestaw cech i możliwości (właściwości, zmienne, procedur i zdarzenia), zdefiniowane przez klasę.Jednak każdy ma własną nazwę, można oddzielnie włączone i wyłączone i mogą być umieszczane w innej lokalizacji w formularzu.

Członkowie obiektu

Obiekt jest elementem aplikacji, reprezentujących instancji klasy.Pola właściwości, metod i zdarzeń są blokami obiektów i stanowią ich członków.

Członek Access

Dostęp członka obiektu przez określenie nazwy zmiennej obiektu w kolejności, okres (.) oraz nazwa elementu członkowskiego.Następujące zestawy przykład Text właściwość Label obiektu.

warningLabel.Text = "Data not saved"

Lista członków IntelliSense

IntelliSense wyświetla listę członków klasy przy wywoływaniu opcja jej członków listy, na przykład wpisz kropkę (.) jako operatora Członkowskie dostępu.Wpisanie okresu po nazwie Zmienna zadeklarowana jako instancja tej klasy, technologia IntelliSense wyświetla listę wszystkich członków instancji i żaden z członków udostępnionego.Wpisanie okresie następującym po sobie nazwę klasy, IntelliSense wyświetla listę wszystkich członków udostępnionego i żaden z członków instancji.Aby uzyskać więcej informacji, zobacz Korzystanie z IntelliSense.

Pola i właściwości

Pola i Właściwości reprezentuje informacje przechowywane w obiekcie.Pobieranie i ustawić ten sam sposób pobierania i ustawić zmienne lokalne w procedurze ich wartości z instrukcji przypisania.Poniższy przykład pobiera Width właściwości i zestawy ForeColor właściwość Label obiektu.

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

Należy zauważyć, że pole jest również nazywany zmienną.

Użyj właściwości procedur podczas:

  • Należy kontrolować, kiedy i jak wartość jest ustawiona lub pobrać.

  • Właściwość ma dobrze zdefiniowane zbiór wartości, które muszą zostać zatwierdzone.

  • Ustawienie wartości takie jak powoduje wyczuwalny zmiana stanu obiektu IsVisible właściwości.

  • Ustawienie właściwości powoduje, że zmiany innych wewnętrznych zmiennych lub wartości innych właściwości.

  • Zestaw kroków należy wykonać przed właściwości można ustawić lub pobrać.

Użyj pola, gdy:

  • Wartość jest typu self-validating.Na przykład błąd lub konwersji danych występuje, jeśli wartość inną niż True lub False jest przypisany do Boolean zmienna.

  • Każda wartość w zakresie obsługiwanych przez typ danych jest prawidłowa.Dotyczy to wiele właściwości typu Single lub Double.

  • Właściwość jest String typ danych i nie istnieje żadne ograniczenie rozmiaru lub wartość ciągu.

  • Aby uzyskać więcej informacji, zobacz Procedury własności (Visual Basic).

Metody

A Metoda akcja, którą obiekt może wykonywać.Na przykład Add jest metodą ComboBox obiekt, który dodaje nowy wpis w polu kombi.

Poniższy przykład ilustruje Start metoda Timer obiektu.

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

Należy zauważyć, że metoda jest po prostu procedury , jest narażony na obiekt.

Aby uzyskać więcej informacji, zobacz Procedury w Visual Basic.

Zdarzenia

Akcja rozpoznawana przez obiekt, takie jak kliknięcie myszą lub naciśnięcie klawisza i dla której można pisać kod odpowiedzi są zdarzenia.Zdarzenia może wystąpić w wyniku działania użytkownika lub kod programu lub może być spowodowane przez system.Kod, który sygnalizuje zdarzenie mówi się, że podnieść zdarzeń i kod, który odpowiada na to mówi się, że obsługi go.

Użytkownik może rozwijać własne niestandardowe zdarzenia wywoływane przez obiekty i obsługiwane przez inne obiekty.Aby uzyskać więcej informacji, zobacz Zdarzenia (Visual Basic).

Wystąpienie członków i członków udostępnionego

Podczas tworzenia obiektu z klasy, wynik jest instancją klasy.Elementy członkowskie, które nie są zadeklarowane z Shared (Visual Basic) są słowa kluczowego członków wystąpienia, które ściśle należą do tego konkretnego wystąpienia.Członka wystąpienia w jednej instancji jest niezależna od tego samego członka w inne wystąpienie tej samej klasy.Wystąpienie zmiennej członkowskiej, na przykład, może mieć różne wartości w różnych sytuacjach.

Członków zadeklarowanych z Shared są słowa kluczowego Członkowie udostępnionego, które należą do klasy jako całości, a nie danym wystąpieniu.Składnik współużytkowany występuje tylko raz, niezależnie od tego, jak wiele wystąpień klasy jego tworzenia, a nawet utworzyć żadnych jego wystąpień.Zmienna członka udostępnionego, na przykład ma tylko jedną wartość, która jest dostępna dla wszystkich kod, który można uzyskać dostęp do tej klasy.

Uzyskiwanie dostępu do członków udostępniana

Dostęp jest udostępniana członkiem obiektu do

  1. Upewnij się, obiekt został utworzony z jego klasy i przypisana do zmiennej obiektowej.

    Dim secondForm As New System.Windows.Forms.Form
    
  2. W instrukcji, która uzyskuje dostęp do członka, wykonaj nazwę zmiennej obiektu z Członkowskich dostępu operator (.) i następnie nazwa członka.

    secondForm.Show()
    

Dostęp do udostępnionych elementów członkowskich

Uzyskać dostępu do udostępnionych członka obiektu

  • Po nazwie klasy Członkowskich dostępu operator (.) i następnie nazwa członka.Należy zawsze dostęp Shared Członkowskich bezpośrednio przez nazwę klasy obiektu.

    MsgBox("This computer is called " & Environment.MachineName)
    
  • Jeśli obiekt został już utworzony z klasy, można też dostęp Shared Członkowskie przez zmienną obiektu.

Różnice między klasami i moduły

Zasadnicza różnica między klasami i modułach jest, że klas można tworzyć wystąpienia jako obiekty podczas, gdy nie moduły standardowe.Ponieważ jest tylko jedna kopia danych moduł standardowy, w jednej części programu zmienia zmiennej publicznej w module standardowym, część program pobiera tę samą wartość, jeżeli następnie odczytywane tej zmiennej.Natomiast dane obiektu istnieje oddzielnie dla każdego obiektu skonkretyzowanym.Inna różnica jest, że w przeciwieństwie do standardowych moduły klas mogą zawierać interfejsy.

[!UWAGA]

Gdy Shared modyfikator jest stosowane do członka klasy, jest skojarzona z klasą samego zamiast konkretnego wystąpienia klasy.Członek jest dostępny bezpośrednio, przy użyciu nazwy klasy, są dostępne członków moduł ten sam sposób.

Klas i moduły także użyć różnych zakresów dla swoich członków.Elementy członkowskie zdefiniowane w klasie są o zakresie, w ramach konkretnego wystąpienia klasy i istnieje tylko w przypadku istnienia obiektu.Aby uzyskać dostęp członkowie klasy poza klasą, należy użyć w pełni kwalifikowane nazwy w formacie obiektu.Member.

Z drugiej strony członkowie zadeklarowana wewnątrz modułu są publicznie dostępne domyślnie i jest możliwy przez każdy kod, który można uzyskać dostęp do modułu.Oznacza to, że zmienne w module standardowym są skutecznie globalnych zmiennych, ponieważ są one widoczne z dowolnego miejsca w projekcie i istnieją dla życia programu.

Ponowne używanie klas i obiektów

Obiekty pozwalają na raz deklarować zmienne i procedury i ponowne ich potrzeba.Na przykład jeśli chcesz dodać sprawdzania pisowni do aplikacji można zdefiniować wszystkie zmienne i obsługuje funkcje zapewniające funkcje sprawdzania pisowni.Tworząc Twoje sprawdzania pisowni jako klasy, można ponownie w innych aplikacjach, dodając odwołanie do skompilowanym zestawie.Jeszcze lepiej można zaoszczędzić pracy przy użyciu klasy sprawdzania pisowni, że ktoś inny już opracowała.

.NET Framework Zawiera wiele przykładów składników, które są dostępne do użycia.W poniższym przykładzie użyto TimeZone klasy w System obszaru nazw.TimeZonezawiera elementy członkowskie, które pozwalają na pobranie informacji o strefie czasowej bieżącego systemu komputerowego.

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

W powyższym przykładzie pierwsza Dim — Instrukcja (Visual Basic) deklaruje zmienną obiektu typu TimeZone i przypisuje do niego TimeZone obiektu zwróconego przez CurrentTimeZone właściwości.

Relacje między obiektami

Obiektów może być powiązane ze sobą na kilka sposobów.Główne rodzaje relacji są hierarchiczne i zamknięcia.

Hierarchicznych relacji

Klasy pochodne więcej podstawowych klas, są one określane jako mają hierarchicznych relacji.Hierarchie klas są przydatne, gdy opisujące podtypu bardziej ogólne klasy elementów.

W poniższym przykładzie załóżmy, że chcesz zdefiniować rodzaj specjalnego Button że działa jak zwykłej Button , ale także opisuje metodę Odwraca kolory pierwszego planu i tła.

Aby zdefiniować klasę pochodzi od klasy już istniejącej

  1. Użyj Class — Instrukcja (Visual Basic) do zdefiniowania klasy, z którego utworzono obiekt potrzebny.

    Public Class reversibleButton

    Upewnij się, End Class instrukcja poniżej ostatniego wiersza kodu w klasie.Domyślnie automatycznie generuje zintegrowane środowisko programistyczne (IDE) End Class po wprowadzeniu Class instrukcji.

  2. Postępuj zgodnie z Class instrukcji bezpośrednio z Inherits — Instrukcja.Określ klasę, z którego pochodzi nowej klasy.

    Inherits System.Windows.Forms.Button

    Nową klasę dziedziczy wszystkie elementy członkowskie zdefiniowane przez klasy podstawowej.

  3. Dodaj kod dla dodatkowych członków sieci odkrywa klasy pochodnej.Na przykład, można dodać reverseColors metody i klasy pochodne może wyglądać następująco:

    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 
    

    Jeśli tworzony jest obiekt z reversibleButton klasy, może uzyskać dostęp wszystkich członków Button klasy, jak również reverseColors metody i innych nowych członków, definiuje się na reversibleButton.

Klasy pochodne dziedziczą członkowie klasy, którą są one oparte, umożliwiające dodanie złożoność w postępie hierarchia klas.Aby uzyskać więcej informacji, zobacz Podstawowe informacje o dziedziczeniu (Visual Basic).

Kompilowanie kodu

Upewnij się, że kompilator może uzyskać dostęp do klasy, z którego chcesz uzyskać nową klasę.Może to oznaczać pełni kwalifikujących się jego nazwa, jak w poprzednim przykładzie lub identyfikacji jego obszar nazw w Imports — Instrukcja (.NET Namespace i Type).Jeśli klasa jest z innego projektu, należy dodać odwołanie do tego projektu.Aby uzyskać więcej informacji, zobacz Zarządzanie odwołaniami projektu.

Relację

Innym sposobem może być powiązane obiektów jest relację.Obiekty kontenera hermetyzowania logicznie innych obiektów.Na przykład OperatingSystem obiektu logicznie zawiera Version obiekt, który zwraca poprzez jego Version właściwości.Należy zauważyć, że obiekt kontenera fizycznie nie zawiera żadnego innego obiektu.

Kolekcje

Jeden szczególny rodzaj zamknięcia obiektu jest reprezentowany przez kolekcji.Kolekcje są grupy podobnych obiektów, które mogą być wyliczone.Visual Basicobsługuje składni w For Each...Next — Instrukcja (Visual Basic) , który pozwala wykonać iterację elementów w kolekcji.Ponadto kolekcje często umożliwiają używanie Item do pobierania elementów przez ich indeks lub kojarzenia ich z unikatowym ciągiem.Kolekcje mogą być łatwiejsze niż tablice, ponieważ umożliwiają dodawanie lub usuwanie elementów bez użycia indeksów.Ze względu na ich łatwość użycia kolekcje są często używane do przechowywania formularzy i formantów.

Tematy pokrewne