Aracılığıyla paylaş


Visual Basic'de Nesneler ve Sınıflar

Bir nesnesinin bir kod ve bir birim olarak kabul veri birleşimidir.Bir nesne, bir denetim veya form gibi bir uygulamanın parçası olabilir.Tüm uygulama, bir nesne de olabilir.

Bir uygulama oluşturduğunuzda, Visual Basic, sürekli nesneleri ile çalışma.Tarafından sağlanan nesneleri kullanabilirsiniz Visual Basicgibi denetimler, form ve veri erişim nesneleri.Diğer uygulamalardan nesneleri de kullanabilirsiniz, Visual Basic uygulama.Hatta, kendi nesneleri oluşturabilir ve ek özellikler ve yöntemler için bunları tanımlayabilirsiniz.Nesneler davranır gibi programlar için yapı taşları prefabricated —, bir parça kodu bir kere Yaz ve tekrar tekrar tekrar olanak verir.

Bu konuda nesneleri ayrıntılı olarak anlatılmaktadır.

Nesneler ve sınıflar

Her nesne içinde Visual Basic tarafından tanımlanan bir sınıfı.Sınıf değişkenleri, özellikleri, yordamları ve nesne olaylarını açıklar.Nesneleri sınıfları şunlardır; bir sınıf tanımladıktan sonra gereken sayıda nesneleri oluşturabilirsiniz.

Nesne sınıfı arasındaki ilişkiyi anlamak için tanımlama bilgisi cutters ve tanımlama düşünün.Bıçağı sınıfıdır.Bu özellikleri her çerez boyutunu ve şeklini tanımlar.Sınıf nesneleri oluşturmak için kullanılır.Tanımlama bilgilerini nesneleridir.

Üyeleri erişebilmek için önce nesneyi oluşturmanız gerekir.

Bir sınıftan bir nesne oluşturmak için

  1. Hangi sınıftan bir nesne oluşturmak istediğinizi belirleyin.

  2. Yazma bir Dim Deyimi (Visual Basic) atadığınız bir sınıf örneğinin bir değişken oluşturmak için.Değişken türü istenen sınıfının olmalı.

    Dim nextCustomer As customer
    
  3. Ekleme New İşleci (Visual Basic) değişkeni için sınıfın yeni bir örneğini başlatmak için anahtar sözcük.

    Dim nextCustomer As New customer
    
  4. Sınıf üyeleri, şimdi nesne değişkeni erişebilirsiniz.

    nextCustomer.accountNumber = lastAccountNumber + 1
    

[!NOT]

Mümkün olduğunda, atamak istediğiniz sınıfı türü için değişken bildirmeniz gerekir.Bu adı verilen erken bağlama.Derleme zamanında yazın sınıf bilmiyorsanız, harekete geç bağlama olması değişkeni bildirmek tarafından Nesne Veri Türü.Ancak, geç bağlama daha yavaş performans hale getirebilir ve çalışma zamanı nesnenin üyeleri erişimi sınırlayın.Daha fazla bilgi için bkz. Nesne Değişken Bildirimi (Visual Basic).

Birden çok örneği

Bir sınıftan yeni oluşturulan sık sık birbirinin nesneleridir.Bir kez ayrı ayrı nesneler olarak kalırlar, ancak kendi değişkenlerin ve özelliklerin diğer örneklerini bağımsız olarak değiştirilebilir.Bir formu üç onay kutusu eklerseniz, örneğin, her onay kutusu nesnesi örneğidir CheckBox sınıfı.Tek tek CheckBox nesneleri ortak özellikleri ve yetenekleri sınıf tarafından tanımlanan (özellikleri, değişkenler, yordamları ve olaylar) kümesi paylaşabilirsiniz.Ancak, her kendi adı, ayrı ayrı etkinleştirilebilir ve devre dışı ve form üzerindeki farklı bir konuma yerleştirilir.

Nesne üyeler

Bir uygulamanın bir nesne öğedir temsil eden bir örnek bir sınıf.Alanları, özellikleri, yöntemleri ve olayları nesnelerin yapı taşlarıdır ve oluşturan kendi üyeleri.

Üye erişim

Nesnenin üyesi, sırayla, nesne değişkeni adı belirterek erişim nokta (.) ve üyenin adı.Aşağıdaki örnek ayarlar Text özelliği, bir Label nesnesi.

warningLabel.Text = "Data not saved"

IntelliSense listesi üyeleri

IntelliSense, bir dönem yazdığınızda, örneğin, liste üyelerini seçeneği çağırdığınızda sınıfın üyeleri listeler (.) bir üye erişimi operatörü olarak.Bu sınıfın bir örneği olarak bildirilen değişken adını izleyen dönem yazarsanız, IntelliSense örnek üyeleri ve paylaşılan üyelerden hiçbiri listeler.Sınıf adının ardından nokta yazarsanız, IntelliSense paylaşılan üyeleri ve Örnek üyelerin hiçbiri listeler.Daha fazla bilgi için bkz. IntelliSense Kullanma.

Alanlar ve Özellikler

Alanları ve özelliklerini bir çalışma nesnesinde saklanan bilgileri temsil eder.Almak ve değerlerini atama deyimleri ile almak ve yerel değişkenleri bir yordamda ayarladığınız şekilde ayarlayın.Aşağıdaki örnek alır Width özellik ve ayarlar ForeColor özelliği, bir Label nesnesi.

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

Not alan da denilen bir üye değişkeni.

Özellik yordamlarını olduğunda:

  • Ne zaman ve nasıl bir değer alınır ya da kontrol etmek gerekir.

  • İyi tanımlanmış değerler kümesi dizisi doğrulanması gereken özelliği vardır.

  • Ayar değeri neden bazı perceptible değişiklik nesnenin durumu gibi bir IsVisible özelliği.

  • Özellik ayarı, diğer iç değişkenleri veya diğer özelliklerin değerlerinin değişiklikler neden olur.

  • Önce bu özelliği ayarlamak veya alınan bir dizi adım gerçekleştirilmesi gerekir.

Kullanım alanları:

  • Self-validating türünü değerdir.Örneğin, bir hata veya otomatik veri dönüştürme dışında bir değer ortaya True veya False için atanmış bir Boolean değişkeni.

  • Herhangi bir veri türü tarafından desteklenen aralık değeri geçerli değil.Bu tür birçok özelliği true Single veya Double.

  • Özellik bir String veri türü ve boyutu veya dize değeri hiçbir kısıtlama yoktur.

  • Daha fazla bilgi için bkz. Özellik Yordamları (Visual Basic).

Yöntemler

A yöntemi bir nesneyi gerçekleştiren bir eylemdir.Örneğin, Add bir yöntemi ComboBox nesnesi bir birleşik giriş kutusu için yeni bir girdi ekler.

Aşağıdaki örnekte gösterilmiştir Start yöntemi bir Timer nesnesi.

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

Basit yöntemdir Not bir yordam bir nesne tarafından sunuldu.

Daha fazla bilgi için bkz. Visual Basic'de Yordamlar.

Olaylar

Olaya yanıt olarak fare tıklatıldığında veya bir tuşa basarak ve kod yazmak, bir nesne tarafından tanınan bir eylemdir.Olayları eylem kullanıcı veya program kodu bir sonucu olarak ortaya çıkabilir veya sistem tarafından kaynaklanabilir.İçin bir olay sinyalleri kod belirtti yükseltmek olay ve kod için ona yanıt vereceğini belirtti ele onu.

Ayrıca, kendi özel olaylar nesneleri tarafından oluşturulur ve diğer nesneleri tarafından işlenen geliştirebilirsiniz.Daha fazla bilgi için bkz. Olaylar (Visual Basic).

Örnek üyeleri ve paylaşılan üyeler

Bir sınıftan bir nesne oluşturduğunuzda, bu sınıfın bir örneğini sonucudur.İle bildirilmeyen üyeleri Shared (Visual Basic) olan anahtar sözcük örnek üyeleri, ait olduğu kesinlikle belirli bir örneğine.Örnek üyesine bir örneği başka bir örneği aynı sınıf içinde aynı üye bağımsızdır.Örnek üye değişkeni, örneğin, farklı durumlarda farklı değerleri olabilir.

Üyeler bildirilmiş olan Shared olan anahtar sözcük paylaşılan üyeleri, bir bütün olarak sınıfa ve belirli bir örneğe ait.Paylaşılan üye kaç, sınıfın örneklerini olsun, oluşturduktan sonra ya da hiç örneği oluşturmak bile var.Paylaşılan üye değişkeni, örneğin, sınıf erişebileceği tüm kod kullanılabilir tek bir değeri vardır.

Paylaşılmayan üyeler erişme

Paylaşılmayan bir nesnenin üyesi erişmek için

  1. Nesne alt sınıftan oluşturulmuş ve bir nesne değişkenine atanan emin olun.

    Dim secondForm As New System.Windows.Forms.Form
    
  2. Nesne değişkeni ile üye erişen deyiminde izleyin üye erişimi operatörü (.) ve sonra üye adı.

    secondForm.Show()
    

Üyeler paylaşılan erişim

Paylaşılan bir nesnenin üyesi erişmek için

  • Sınıf adı ile üye erişimi operatörü (.) ve sonra üye adı.Her zaman erişim bir Shared nesnesinin sınıf adı ile doğrudan üyesi.

    MsgBox("This computer is called " & Environment.MachineName)
    
  • Sınıfından bir nesne zaten oluşturduysanız, alternatif olarak erişebileceğiniz bir Shared üyesi üzerinden nesne değişkeni.

Modüller arasında farklılıklar

Ana sınıfları ve modüller arasında standart modüller edilemez durumdayken sınıf nesneleri olarak oluşturulabileceği farktır.Standart bir modüle ait veriler, yalnızca bir kopyası olmadığından programınızı bir bölümünü ortak bir standart modül değişkende değiştiğinde bu değişken daha sonra okur, programı'nın parçası aynı değeri alır.Buna karşılık, nesne verileri örneklenmiş her nesne için ayrı ayrı bulunmaktadır.Başka bir standart modüller arabirimlerin sınıfları uygulayabilirsiniz farktır.

[!NOT]

Zaman Shared değiştirici uygulanan bir sınıf üyesi, sınıfın kendisi yerine, belirli bir sınıfın örneğini ile ilişkilidir.Üye doğrudan sınıf adı kullanılarak erişilen, aynı şekilde modülü üyeleri erişilir.

Sınıflar ve modülleri farklı kapsamlar üyeleri için de.Sınıf içinde tanımlanan üyeler, belirli bir sınıfın örneğini içinde kapsamlı ve yalnızca nesnenin yaşam için vardır.Sınıf üyeleri sınıfın dışında erişmeye biçiminde tam adları kullanmalısınız nesnesinin.Member.

Diğer taraftan, modülü içinde bildirilen üyeler varsayılan olarak erişilebilecek ve modüle erişebilirsiniz kodu tarafından erişilebilir.Projenizin her yerde görünür ve program süresince kalırlar çünkü standart modül içindeki değişkenler verimli global değişkenler olan anlamına gelir.

Sınıflar ve nesneler yeniden kullanma

Nesne değişkenleri ve yordamları kez bildirmek ve gerektiğinde bunları yeniden olanak sağlar.Örneğin, yazım denetimi uygulama eklemek istiyorsanız, tüm değişkenleri tanımlamak ve yazım denetimi işlevi sağlamak üzere işlevleri desteklemek.Yazım bir sınıf olarak oluşturursanız, sonra onu diğer uygulamalarda derlenmiş derleme başvurusu ekleyerek yeniden kullanabilirsiniz.İyi kendiniz başkasının zaten geliştirmiştir bir yazım sınıfını kullanarak bazı kaydetmek mümkün olabilir.

.NET Framework Birçok kullanılabilir bileşenler örnekleri sağlar.Aşağıdaki örnek TimeZone , sınıf System ad.TimeZonebilgisayar sisteminin geçerli saat dilimi hakkında bilgi almak izin üyeleri sağlar.

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

Önceki örnekte, ilk Dim Deyimi (Visual Basic) türünde bir nesne değişkeni bildirir TimeZone ve atar bir TimeZone tarafından döndürülen nesne CurrentTimeZone özelliği.

Nesneler arasındaki ilişki

Nesneleri birbirlerine çeşitli yollarla ilgili olabilir.Asıl ilişki türleridir hiyerarşik ve İçerik.

Hiyerarşik ilişki

Daha Temel sınıftan türetilmiş sınıfları, bunlar barındırıyor bir hiyerarşik ilişki.Sınıf hiyerarşilerindeki daha genel bir sınıfın alt öğeler tanıtırken faydalı olabilir.

Aşağıdaki örnekte, bir özel tür tanımlamak istediğiniz varsayalım Button normal gibi davranır Button ama aynı zamanda ön plan ve arka plan renklerini tersine çevirir bir yöntem sunar.

Zaten varolan bir sınıftan türetilmiş olan bir sınıf tanımlamak için

  1. Kullanımı bir Class Deyimi (Visual Basic) , bir nesne oluşturmak gereksinim duyduğunuz bir sınıf tanımlamak için.

    Public Class reversibleButton

    Mutlaka bir End Class deyimi kendi sınıfındaki kodun son satırı aşağıdaki gibidir.Varsayılan olarak, tümleşik geliştirme ortamı (IDE) otomatik olarak oluşturduğu bir End Class girdiğinizde bir Class ifadesi.

  2. İzleyin Class deyimiyle hemen bir Inherits Deyimi.Yeni sınıfınızın kendisinden türeyen sınıf belirtin.

    Inherits System.Windows.Forms.Button

    Yeni sınıfınızın temel sınıf tarafından tanımlanan tüm üyeleri devralır.

  3. Kod, türetilmiş bir sınıf ortaya çıkarır için diğer üyeleri ekleyin.Örneğin, eklemiş olabileceğiniz bir reverseColors yöntemi ve türetilmiş bir sınıf, şuna aşağıdaki gibi:

    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 
    

    Bir nesne oluşturursanız, reversibleButton sınıfı, onu erişebilir tüm üyeleri Button sınıfı, yanı reverseColors yöntemi ve sizin tanımladığınız diğer yeni üyeler reversibleButton.

Türetilmiş Sınıflar üyeleri, karmaşıklık sınıf hiyerarşisinde ekleyin, ilerleme sağlayarak temel alınan sınıftan devralır.Daha fazla bilgi için bkz. Devralma Temelleri (Visual Basic).

Kod Derleniyor

Derleyici, yeni bir sınıf türetmek düşündüğünüz sınıf erişebildiğinden emin olun.Bu tam olarak yukarıdaki örnekte olduğu gibi adını nitelemek veya kendi ad boşluğunda tanımlama anlamına gelebilir bir Imports Deyimi (.NET Ad Alanı ve Türü).Sınıf içinde farklı bir proje ise, bu proje için bir başvuru eklemek gerekebilir.Daha fazla bilgi için bkz. Proje Başvurularını Yönetme.

İçerik ilişkisi

Nesneleri ilgili başka bir yolu, bir İçerik ilişki.Kapsayıcı nesneleri mantıksal olarak diğer nesneleri şifreleyebilir.Örneğin, OperatingSystem mantıksal olarak nesneyi içeren bir Version aracılığıyla verir nesnesi, Version özelliği.Not kapsayıcısındaki fiziksel olarak başka bir nesne içermiyor.

Koleksiyonlar

Belirli türde bir kapsayıcı nesnesi tarafından temsil koleksiyonları.Koleksiyonlar listelenebilir benzer nesneleri gruplarıdır.Visual BasicBelirli bir sözdizimini destekler For Each...Next Deyimi (Visual Basic) bir koleksiyon öğeleri yineleme izin verir.Ayrıca koleksiyonları çoğunlukla kullanmanıza olanak sağlayan bir Item , dizin ya da bunları benzersiz bir dize ile ilişkilendirerek öğeleri almak için.Koleksiyonlar, diziler öğe eklemek veya dizinleri kullanmadan kaldırmak için izin vermek için kullanmak daha kolay olabilir.Bunların kullanım kolaylığı nedeniyle koleksiyonları genellikle formlar ve denetimler depolamak için kullanılır.

İlgili Konular