Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Visual Basic memberikan dukungan penuh untuk pemrograman berorientasi objek termasuk enkapsulasi, warisan, dan polimorfisme.
Enkapsulasi merupakan sekelompok properti, metode, dan anggota lain yang terkait yang diperlakukan sebagai satu unit atau objek.
Pewarisan menjelaskan kemampuan untuk membuat kelas baru berdasarkan kelas yang ada.
Polimorfisme berarti Anda dapat memiliki beberapa kelas yang dapat digunakan secara bergantian, meskipun setiap kelas menerapkan properti atau metode yang sama dengan cara yang berbeda.
Bagian ini menjelaskan konsep-konsep berikut:
Kelas dan objek
Istilah kelas dan objek terkadang digunakan secara bersamaan, tetapi pada kenyataannya, kelas merupakan jenis objek, sementara objek adalah instans kelas yang dapat digunakan. Jadi, tindakan membuat objek disebut pembuatan instans. Dengan analogi cetak biru, kelas adalah cetak biru, dan objek adalah bangunan yang terbuat dari cetak biru itu.
Untuk menentukan kelas:
Class SampleClass
End Class
Visual Basic juga menyediakan versi ringan kelas yang disebut struktur, berguna ketika Anda perlu membuat array objek yang besar dan tidak ingin mengonsumsi terlalu banyak memori.
Untuk menentukan struktur:
Structure SampleStructure
End Structure
Untuk informasi selengkapnya, lihat:
Anggota kelas
Setiap kelas dapat memiliki anggota kelas yang berbeda yang mencakup properti yang menjelaskan data kelas, metode yang menentukan perilaku kelas, dan peristiwa yang menyediakan komunikasi antara kelas dan objek yang berbeda.
Properti dan bidang
Bidang dan properti mewakili informasi yang berisi objek. Bidang mirip seperti variabel karena dapat dibaca atau diatur secara langsung.
Untuk menentukan bidang:
Class SampleClass
Public SampleField As String
End Class
Properti memiliki prosedur get (dapatkan) dan set (atur), yang memberikan kontrol lebih besar tentang cara nilai ditetapkan atau dimunculkan.
Visual Basic memungkinkan Anda membuat bidang privat untuk menyimpan nilai properti atau menggunakan apa yang disebut properti yang diimplementasikan secara otomatis yang membuat bidang ini secara otomatis di belakang layar dan menyediakan logika dasar untuk prosedur properti.
Untuk menentukan properti yang diimplementasikan secara otomatis:
Class SampleClass
Public Property SampleProperty as String
End Class
Jika Anda perlu melakukan beberapa operasi tambahan untuk membaca dan menulis nilai properti, tentukan bidang untuk menyimpan nilai propertinya dan berikan logika dasar untuk menyimpan dan mengambilnya:
Class SampleClass
Private m_Sample As String
Public Property Sample() As String
Get
' Return the value stored in the field.
Return m_Sample
End Get
Set(ByVal Value As String)
' Store the value in the field.
m_Sample = Value
End Set
End Property
End Class
Sebagian besar properti memiliki metode atau prosedur untuk nilai properti get (dapatkan) dan set (atur). Namun, Anda dapat membuat properti baca-saja atau tulis-saja untuk membatasinya agar tidak dimodifikasi atau dibaca. Di Visual Basic, Anda dapat menggunakan kata kunci ReadOnly
dan WriteOnly
. Namun, properti yang diimplementasikan secara otomatis tidak boleh baca-saja atau tulis-saja.
Untuk informasi selengkapnya, lihat:
Metode
Metode adalah tindakan yang dapat dilakukan objek.
Catatan
Dalam Visual Basic, ada dua cara untuk membuat metode: pernyataan Sub
digunakan jika metode tidak memunculkan nilai; pernyataan Function
digunakan jika metode memunculkan nilai.
Untuk menentukan metode kelas:
Class SampleClass
Public Function SampleFunc(ByVal SampleParam As String)
' Add code here
End Function
End Class
Kelas dapat memiliki beberapa implementasi, atau kelebihan beban, dengan metode yang sama dengan perbedaan dalam jumlah parameter atau jenis parameter.
Untuk memberi beban lebih pada metode:
Overloads Sub Display(ByVal theChar As Char)
' Add code that displays Char data.
End Sub
Overloads Sub Display(ByVal theInteger As Integer)
' Add code that displays Integer data.
End Sub
Sering kali, Anda mendeklarasikan metode dalam definisi kelas. Namun, Visual Basic juga mendukung metode ekstensi yang memungkinkan Anda menambahkan metode ke kelas yang ada di luar definisi kelas yang sebenarnya.
Untuk informasi selengkapnya, lihat:
Konstruktor
Konstruktor adalah metode kelas yang dijalankan secara otomatis ketika objek dari jenis tertentu dibuat. Konstruktor biasanya menginisialisasi anggota data dari objek baru. Konstruktor hanya dapat berjalan sekali ketika kelas dibuat. Selain itu, kode dalam konstruktor selalu berjalan lebih dulu daripada kode lain di kelas. Namun, Anda dapat memberi beban lebih pada konstruktor dengan cara yang sama seperti metode lainnya.
Untuk menentukan konstruktor untuk kelas:
Class SampleClass
Sub New(ByVal s As String)
// Add code here.
End Sub
End Class
Untuk informasi selengkapnya, lihat: Masa Pakai Objek: Cara Pembuatan dan Penghancuran Objek.
Penghancur
Penghancur digunakan untuk menghancurkan instans kelas. Dalam .NET Framework, pengumpul sampah mengelola alokasi dan melepaskan memori untuk objek yang dikelola di aplikasi Anda secara otomatis. Namun, mungkin Anda masih memerlukan penghancur untuk membersihkan sumber daya yang tidak terkelola yang dibuat aplikasi Anda. Hanya ada satu penghancur untuk satu kelas.
Untuk informasi selengkapnya tentang penghancur dan pengumpulan sampah di .NET Framework, lihat Pengumpulan Sampah.
Acara
Peristiwa memungkinkan kelas atau objek untuk memberi tahu kelas atau objek lain saat sesuatu yang menarik terjadi. Kelas yang mengirim (atau memunculkan) acara disebut penerbit dan kelas yang menerima (atau menangani) acara disebut pelanggan. Untuk informasi selengkapnya tentang peristiwa, cara memunculkan dan menangani peristiwa, lihat Peristiwa.
Untuk mendeklarasikan peristiwa, gunakan Pernyataan Peristiwa.
Untuk memunculkan peristiwa, gunakan Pernyataan Peristiwa.
Untuk menentukan penanganan aktivitas menggunakan cara deklaratif, gunakan pernyataan WithEvents dan klausul Handel.
Agar dapat menambahkan, menghapus, dan mengubah penanganan aktivitas yang terkait dengan peristiwa secara dinamis, gunakan Pernyataan AddHandler dan Pernyataan RemoveHandler bersama dengan Operator AddressOf.
Kelas berlapis
Kelas yang ditentukan dalam kelas lain disebut kelas berlapis. Secara default, kelas berlapis bersifat privat.
Class Container
Class Nested
' Add code here.
End Class
End Class
Untuk membuat instans kelas berlapis, gunakan nama kelas kontainer diikuti oleh titik, lalu diikuti dengan nama kelas berlapis:
Dim nestedInstance As Container.Nested = New Container.Nested()
Mengakses pengubah dan tingkat akses
Semua kelas dan anggota kelas dapat menentukan tingkat akses yang mereka berikan ke kelas lain dengan menggunakan pengubah akses.
Pengubah akses berikut tersedia:
Pengubah Visual Basic | Definisi |
---|---|
Publik | Jenis atau anggota dapat diakses oleh kode lain dalam perakitan yang sama atau rakitan lain yang mereferensikannya. |
Privat | Jenis atau anggota hanya dapat diakses dengan kode di kelas yang sama. |
Terlindungi | Jenis atau anggota hanya dapat diakses dengan kode di kelas yang sama atau di kelas turunan. |
Teman | Jenis atau anggota dapat diakses dengan kode apa pun di rakitan yang sama, tetapi tidak dari rakitan lain. |
Protected Friend |
Jenis atau anggota dapat diakses dengan kode apa pun di rakitan yang sama, atau oleh kelas turunan apa pun di rakitan lain. |
Untuk informasi selengkapnya, lihat Tingkat akses di Visual Basic.
Pembuatan instans kelas
Untuk membuat objek, Anda perlu membuat instans kelas.
Dim sampleObject as New SampleClass()
Setelah membuat instans kelas, Anda dapat menetapkan nilai ke properti dan bidang instans dan memanggil metode kelas.
' Set a property value.
sampleObject.SampleProperty = "Sample String"
' Call a method.
sampleObject.SampleMethod()
Untuk menetapkan nilai ke properti selama proses pembuatan instans kelas, gunakan inisialisasi objek:
Dim sampleObject = New SampleClass With
{.FirstProperty = "A", .SecondProperty = "B"}
Untuk informasi selengkapnya, lihat:
Kelas dan anggota bersama
Anggota bersama di dalam kelas adalah properti, prosedur, atau bidang yang dibagikan oleh semua instans kelas.
Untuk menentukan anggota bersama:
Class SampleClass
Public Shared SampleString As String = "Sample String"
End Class
Untuk mengakses anggota bersama, gunakan nama kelas tanpa membuat objek kelas ini:
MsgBox(SampleClass.SampleString)
Modul bersama di Visual Basic hanya memiliki anggota bersama dan tidak dapat dibuat instansnya. Anggota bersama juga tidak dapat mengakses properti, bidang, atau metode yang tidak dibagikan
Untuk informasi selengkapnya, lihat:
Jenis anonim
Jenis anonim memungkinkan Anda membuat objek tanpa menulis definisi kelas untuk jenis data tersebut. Sebaliknya, pengkompilasi menghasilkan kelas untuk Anda. Kelas tersebut tidak memiliki nama yang dapat digunakan dan berisi properti yang Anda tentukan saat mendeklarasikan objek.
Untuk membuat instans jenis anonim:
' sampleObject is an instance of a simple anonymous type.
Dim sampleObject =
New With {Key .FirstProperty = "A", .SecondProperty = "B"}
Untuk informasi lebih lanjut, lihat Jenis Anonim.
Warisan
Pewarisan memungkinkan Anda membuat kelas baru yang menggunakan kembali, memperluas, dan memodifikasi perilaku yang ditentukan di kelas lain. Kelas yang anggotanya diwariskan disebut kelas dasar, dan kelas yang mewarisi anggota tersebut disebut kelas turunan. Namun, semua kelas di Visual Basic mewarisi kelas Object secara implisit yang mendukung hierarki kelas .NET dan menyediakan layanan tingkat rendah untuk semua kelas.
Catatan
Visual Basic tidak mendukung beberapa warisan. Artinya, Anda hanya dapat menentukan satu kelas dasar untuk satu kelas turunan.
Untuk mewarisi dari kelas dasar:
Class DerivedClass
Inherits BaseClass
End Class
Secara default, semua kelas dapat diwariskan. Namun, Anda dapat menentukan apakah suatu kelas tidak boleh digunakan sebagai kelas dasar, atau membuat kelas yang hanya dapat digunakan sebagai kelas dasar.
Untuk menentukan suatu kelas tidak dapat digunakan sebagai kelas dasar:
NotInheritable Class SampleClass
End Class
Untuk menentukan suatu kelas hanya dapat digunakan sebagai kelas dasar dan tidak dapat dibuat instansnya:
MustInherit Class BaseClass
End Class
Untuk informasi selengkapnya, lihat:
Mengambil alih anggota
Secara default, kelas turunan mewarisi semua anggota dari kelas dasarnya. Jika ingin mengubah perilaku anggota yang diwariskan, Anda perlu menggantinya. Artinya, Anda dapat menentukan implementasi baru pada metode, properti atau peristiwa di kelas turunan.
Pengubah berikut digunakan untuk mengontrol pengambil-alihan properti dan metode:
Pengubah Visual Basic | Definisi |
---|---|
Dapat diambil alih | Memungkinkan anggota kelas untuk diambil alih dalam kelas turunan. |
Mengabaikan | Mengambil alih anggota virtual (dapat diambil alih) yang ditentukan di kelas dasar. |
Tidak Dapat Diganti | Mencegah anggota diambil alih di kelas yang warisan. |
HarusMenimpa | Mengharuskan anggota kelas untuk diambil alih di kelas turunan. |
Bayangan | Menyembunyikan anggota yang diwarisi dari kelas dasar |
Antarmuka
Antarmuka, seperti kelas, menentukan satu set properti, metode, dan peristiwa. Tetapi tidak seperti kelas, antarmuka tidak menyediakan implementasi. Antarmuka diimplementasikan oleh kelas, dan didefinisikan sebagai entitas yang terpisah dari kelas. Antarmuka mewakili kontrak, di mana kelas yang mengimplementasikan antarmuka harus mengimplementasikan setiap aspek antarmuka tersebut persis seperti yang didefinisikan.
Untuk menentukan antarmuka:
Public Interface ISampleInterface
Sub DoSomething()
End Interface
Untuk mengimplementasikan antarmuka di kelas:
Class SampleClass
Implements ISampleInterface
Sub DoSomething
' Method implementation.
End Sub
End Class
Untuk informasi selengkapnya, lihat:
Generik
Kelas, struktur, antarmuka, dan metode dalam .NET dapat mencakup parameter jenis yang menentukan jenis objek yang dapat disimpan atau digunakan. Contoh umum generik adalah kumpulan, di mana Anda dapat menentukan jenis objek yang akan disimpan dalam kumpulan.
Untuk menentukan kelas generik:
Class SampleGeneric(Of T)
Public Field As T
End Class
Untuk membuat instans kelas generik:
Dim sampleObject As New SampleGeneric(Of String)
sampleObject.Field = "Sample string"
Untuk informasi selengkapnya, lihat:
Delegasikan
Delegasi adalah jenis yang menentukan tanda tangan metode, dan dapat memberikan referensi ke metode apa pun dengan tanda tangan yang kompatibel. Anda dapat memanggil metode tersebut melalui delegasi. Delegasi digunakan untuk meneruskan metode sebagai argumen ke metode lain.
Catatan
Penanganan aktivitas merupakan metode yang dipanggil melalui delegasi. Untuk informasi selengkapnya tentang penggunaan delegasi dalam penanganan peristiwa, lihat Peristiwa.
Untuk membuat delegasi:
Delegate Sub SampleDelegate(ByVal str As String)
Untuk membuat referensi ke metode yang cocok dengan tanda tangan yang ditentukan oleh delegasi:
Class SampleClass
' Method that matches the SampleDelegate signature.
Sub SampleSub(ByVal str As String)
' Add code here.
End Sub
' Method that instantiates the delegate.
Sub SampleDelegateSub()
Dim sd As SampleDelegate = AddressOf SampleSub
sd("Sample string")
End Sub
End Class
Untuk informasi selengkapnya, lihat: