Members
Technology Zones
IBM Learning Center
Articles
Hosted By
Info
|
Rated
Read 93,456 times
Contents
Related Categories
Introduction to Class Programming - Properties Of a Class
Properties Of a Class
Now is the time to make our class to more
robust class. A robust class is one that actively protects its internal data
from tampering. So how can a class protect itself from invalid assignments, such
as an empty string for its FirstName or LastName properties. To accomplish
this purpose, you must change the internal implementation of the class module, because in
its present form you have no means of trapping the assignment operation. Simply
change all the Public member into Private members and encapsulate them in pairs
of Property procedures.
-
To change our Student class
- Double click the class Student.cls in the
Project Explorer
- In the Student Class Module, change all word Public to
Private and add
a prefix m_ in front of all private variables, as shown below:
'In the declaration section of the Student class module
Private m_Student_ID As String
Private m_FirstName As String
Private m_LastName As String
Private m_YearLevel As String
Private m_BirthDate As Date
|
NOTE
You can also use Replace Dialog box. To do this, press Ctrl-H,
the Replace
Dialog box appears. On the Find What combo box, type Public. Next on the
Replace
With combo box, type Private, then click Replace All button.
Appending the prefix m_ is just a personal style, this way it
keeps my property name and private member variable synchronize and it is
commonly used in programming. Feel free to use it or to create your own
style.
- In the Student
Class Module, type the following code:
'In the declaration section of the Student class module
Private m_Student_ID As String
Private m_FirstName As String
Private m_LastName As String
Private m_MajorCode As String
Private m_YearLevel As String
Private m_BirthDate As Date
Property Get MajorCode() As String
MajorCode = m_MajorCode
End Property
Property Let MajorCode(ByVal strNewValue As String)
' Raise an error if an invalid assignment is attempted.
If Len(strNewValue) = 0 Or Len(strNewValue) > 1 Then Err.Raise 5
m_MajorCode = strNewValue
End Property
Property Get FirstName() As String
FirstName = m_FirstName
End Property
Property Let FirstName(ByVal strNewValue As String)
' Raise an error if an invalid assignment is attempted.
If Len(strNewValue) = 0 Then Err.Raise 5 ' Invalid procedure argument
' Else store in the Private member variable.
m_FirstName = strNewValue
End Property
Property Get LastName() As String
LastName = m_LastName
End Property
Property Let LastName(ByVal strNewValue As String)
' Raise an error if an invalid assignment is attempted.
If Len(strNewValue) = 0 Then Err.Raise 5 ' Invalid procedure argument
' Else store in the Private member variable.
m_LastName = strNewValue
End Property
Property Get StudentID() As String
StudentID = m_Student_ID
End Property
Property Let StudentID(ByVal strNewValue As String)
' Raise an error if an invalid assignment is attempted.
If Len(strNewValue) = 0 Then Err.Raise 5 ' Invalid procedure argument
' Else store in the Private member variable.
m_Student_ID = strNewValue
End Property
Property Get BirthDate() As Date
BirthDate = m_BirthDate
End Property
Property Let BirthDate(ByVal datNewValue As Date)
If datNewValue >= Now Then Err.Raise 1001, , "Future Date!"
m_BirthDate = datNewValue
End Property
Property Get YearLevel() As String
YearLevel = m_YearLevel
End Property
Property Let YearLevel(ByVal strNewValue As String)
Dim varTemp As Variant
Dim found As Boolean
For Each varTemp In Array("Freshmen", "Sophomore", "Junior", "Senior")
If InStr(1, strNewValue, varTemp, vbTextCompare) Then
found = True
Exit For
End If
Next
If Not found Then Err.Raise 5
m_YearLevel = strNewValue
End Property
|
NOTE
Visual Basic can help you in typing Property Procedure by Add
Procedure command from the Tools menu, which creates a
templates for Property Get and Let procedures. But you
should edit the result to a proper data type, because all properties
created by this command is of type Variant.
- On the Run menu
in Visual Basic, click Start.
- When the program is running, click the Command1
button.
- Click OK to close the message box.
- On the Run menu in Visual
Basic, click Stop.
Everything works as before. What we have done, is make the class a bit more
robust because it now refuses to assign invalid values to its properties. To see
what I mean, just try to issue this command:
objStudent.FirstName = "" 'Raises an error 'Invalid Procedure call
|
Comments
-
Posted by mailforanu on 07 Jun 2008
[quote user="Developer Fusion Bot"]
This thread is for discussions of Introduction to Class Programming.
[/quote]
This... -
Posted by jbhavani on 12 Jul 2007
Hello Sir,
I have just seen u'r examples for class module.u'r explaination is simply superb!!!!
now i clearly understood the class module concept in VB.
Thank... -
Posted by CraigaNelson on 15 May 2007
This was a very good fundamental article on the use of classes in VB. looking forward to additional more advance content -
Posted by davulcu on 16 May 2006
It s a great sample about the class programming. However, it s still uncertain for me where I can use this in real life.
Can anyone give me an example ?
Posted by kirov on 05 Oct 2005
what kind of help you wants from me. i mean to clear out your visual basic basics by giving you some tutorials or anything else. bye
|
Search
Related Content
Code Samples
New Members
|