Pernyataan Kelas (Visual Basic)

Mendeklarasikan nama kelas dan memperkenalkan definisi variabel, properti, peristiwa, dan prosedur yang terdiri dari kelas.

Sintaks

[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _  
Class name [ ( Of typelist ) ]  
    [ Inherits classname ]  
    [ Implements interfacenames ]  
    [ statements ]  
End Class  

Generator

Term Definisi
attributelist Opsional. Lihat Daftar Atribut.
accessmodifier Opsional. Bisa jadi salah satu dari yang berikut:

- Publik
- Terlindungi
- Teman
- Privat
- Teman yang Terlindungi
- Dilindungi secara Privat

Lihat Tingkat akses di Visual Basic.
Shadows Opsional. Lihat Bayangan.
MustInherit Opsional. Lihat MustInherit.
NotInheritable Opsional. Lihta NotInheritable.
Partial Opsional. Menunjukkan definisi parsial dari kelas. Lihat Parsial.
name Harus diisi. Nama kelas ini. Lihat Nama Elemen yang Dideklarasikan.
Of Opsional. Menentukan bahwa ini adalah kelas generik.
typelist Diperlukan jika Anda menggunakan kata kunci Dari. Daftar parameter jenis untuk kelas ini. Lihat Daftar Jenis.
Inherits Opsional. Menunjukkan bahwa kelas ini mewarisi anggota kelas lain. Lihat Pernyataan Inherits.
classname Diperlukan jika Anda menggunakan pernyataan Inherits. Nama kelas atau antarmuka dari asal kelas ini.
Implements Opsional. Menunjukkan bahwa kelas ini mengimplementasikan anggota dari satu atau lebih antarmuka. Lihat Pernyataan Implements.
interfacenames Diperlukan jika Anda menggunakan pernyataan Implements. Nama-nama antarmuka yang diimplementasikan kelas ini.
statements Opsional. Pernyataan yang mendefinisikan anggota kelas ini.
End Class Harus diisi. Mengakhiri definisi Class.

Keterangan

Pernyataan Class mendefinisikan jenis data baru. Kelas adalah blok penyusun dasar pemrograman berorientasi objek (OOP). Untuk informasi selengkapnya, lihat Objek dan Kelas.

Anda hanya dapat menggunakan Class di tingkat namespace atau modul. Ini berarti konteks deklarasi untuk antarmuka harus berupa file sumber, namespace, kelas, struktur, modul, atau antarmuka, dan tidak dapat menjadi prosedur atau blok. Untuk informasi selengkapnya, lihat Konteks Deklarasi dan Tingkat Akses Default.

Setiap instans kelas memiliki masa pakai independen dari semua instans lainnya. Masa pakai ini dimulai ketika dibuat oleh klausul Operator Baru atau oleh fungsi seperti CreateObject. Ini berakhir ketika semua variabel yang menunjuk ke instans telah diatur ke Nothing atau ke instans kelas lain.

Default kelas ke akses Teman. Anda dapat menyesuaikan tingkat aksesnya dengan pengubah akses. Untuk informasi selengkapnya, lihat Tingkat akses di Visual Basic.

Aturan

  • Bersarang. Anda dapat menentukan satu kelas dalam kelas lain. Kelas luar disebut kelas yang memuat, dan kelas dalam disebut kelas berlapis.

  • Turunan. Jika kelas menggunakan Pernyataan Warisan, Anda hanya dapat menentukan satu kelas dasar atau antarmuka. Kelas tidak dapat mewarisi dari lebih dari satu elemen.

    Kelas tidak dapat mewarisi dari kelas lain dengan tingkat akses yang lebih ketat. Misalnya, kelas Public tidak dapat mewarisi dari kelas Friend.

    Kelas tidak dapat mewarisi dari kelas yang bersarang di dalamnya.

  • Implementasi. Jika struktur menggunakan Pernyataan Implementasi, Anda harus mengimplementasikan setiap anggota yang ditentukan oleh setiap antarmuka yang Anda tentukan di interfacenames. Pengecualian untuk ini adalah implementasi ulang anggota kelas dasar. Untuk informasi selengkapnya, lihat "Implementasi Ulang" di Penerapan.

  • Properti Default. Kelas dapat menentukan paling banyak satu properti sebagai properti defaultnya. Untuk informasi selengkapnya, lihat Default.

Perilaku

  • Tingkat Akses. Dalam kelas, Anda dapat mendeklarasikan setiap anggota dengan tingkat aksesnya sendiri. Anggota kelas default ke kses Publik, kecuali variabel dan konstanta, yang default ke akses Privat. Ketika kelas memiliki akses yang lebih terbatas daripada salah satu anggotanya, tingkat akses kelas lebih diutamakan.

  • Cakupan. Kelas berada dalam ruang lingkup di seluruh namespace, kelas, struktur, atau modul yang memuatnya.

    Ruang lingkup setiap anggota kelas adalah seluruh kelas.

    Masa pakai. Visual Basic tidak mendukung kelas statis. Setara fungsional dari kelas statis disediakan oleh modul. Untuk informasi selengkapnya, lihat Pernyataan Modul.

    Anggota kelas memiliki masa hidup tergantung pada bagaimana dan di mana mereka dideklarasikan. Untuk informasi selengkapnya, lihat Masa Pakai dalam Visual Basic.

  • Kualifikasi. Kode di luar kelas harus memenuhi syarat nama anggota dengan nama kelas tersebut.

    Jika kode di dalam kelas bersarang membuat referensi yang tidak memenuhi syarat ke elemen pemrograman, Visual Basic mencari elemen pertama di kelas bersarang, kemudian di kelas yang memuat, dan seterusnya ke elemen yang berisi terluar.

Kelas dan Modul

Elemen-elemen ini memiliki banyak kesamaan, tetapi ada beberapa perbedaan penting juga.

  • Terminologi Versi Visual Basic sebelumnya mengenali dua jenis modul: modul kelas (file.cls) dan modul standar (file.bas). Versi saat ini masing-masing memanggil kelas dan modul ini.

  • Anggota Bersama. Anda dapat mengontrol apakah anggota kelas adalah anggota bersama atau instans.

  • Orientasi objek. Kelas berorientasi objek, tetapi modul tidak. Anda dapat membuat satu atau beberapa instans kelas. Untuk informasi selengkapnya, lihat Objek dan Kelas.

Contoh

Contoh berikut menggunakan pernyataan Class untuk menentukan kelas dan beberapa anggota.

Class BankAccount
    Shared interestRate As Decimal
    Private accountBalance As Decimal
    Public holdOnAccount As Boolean = False

    Public ReadOnly Property Balance() As Decimal
        Get
            Return accountBalance
        End Get
    End Property

    Public Sub PostInterest()
        accountBalance = accountBalance * (1 + interestRate)
    End Sub

    Public Sub PostDeposit(ByVal amountIn As Decimal)
        accountBalance = accountBalance + amountIn
    End Sub

    Public Sub PostWithdrawal(ByVal amountOut As Decimal)
        accountBalance = accountBalance - amountOut
    End Sub
End Class

Lihat juga