Can someone please explain the differences between the two pieces of code below.
Code 1 declares NormalHrs and OverHrs as PRIVATE and so introduces EmpNormalHrs and EmpOverTimeHrs but is that really necessary?
In code 2, NormalHrs and OverHrs are declared PUBLIC and there is no need to introduce EmpNormalHrs and EmpOverTimeHrs, yet it works equally well?
Thanks in advance.
Code 1 declares NormalHrs and OverHrs as PRIVATE and so introduces EmpNormalHrs and EmpOverTimeHrs but is that really necessary?
In code 2, NormalHrs and OverHrs are declared PUBLIC and there is no need to introduce EmpNormalHrs and EmpOverTimeHrs, yet it works equally well?
Thanks in advance.
Code:
[COLOR="SeaGreen"]'***** Code 1[/COLOR]
[COLOR="SeaGreen"]'***** This is entered into a class module, named clsEmployee[/COLOR]
[COLOR="Navy"]Public[/COLOR] EmpName [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]String[/COLOR]
[COLOR="Navy"]Public[/COLOR] EmpRate [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
[COLOR="Navy"]Private[/COLOR] NormalHrs [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
[COLOR="Navy"]Private[/COLOR] OverHrs [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
[COLOR="Navy"]Property[/COLOR] [COLOR="Navy"]Let[/COLOR] EmpWeeklyHrs(Hrs [COLOR="Navy"]As[/COLOR] Double)
NormalHrs = WorksheetFunction.Min(35, Hrs)
OverHrs = WorksheetFunction.Max(0, Hrs - 35)
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Property[/COLOR]
[COLOR="Navy"]Property[/COLOR] [COLOR="Navy"]Get[/COLOR] EmpWeeklyHrs() [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
EmpWeeklyHrs = NormalHrs + OverHrs
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Property[/COLOR]
[COLOR="Navy"]Property[/COLOR] [COLOR="Navy"]Get[/COLOR] EmpNormalHrs() [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
EmpNormalHrs = NormalHrs
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Property[/COLOR]
[COLOR="Navy"]Property[/COLOR] [COLOR="Navy"]Get[/COLOR] EmpOverTimeHrs() [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
EmpOverTimeHrs = OverHrs
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Property[/COLOR]
[COLOR="Navy"]Public[/COLOR] [COLOR="Navy"]Function[/COLOR] EmpWeeklyPay() [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
EmpWeeklyPay = (EmpNormalHrs * EmpRate) + (EmpOverTimeHrs * EmpRate * 2)
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Function[/COLOR]
[COLOR="SeaGreen"]'***** This is entered into a standard module[/COLOR]
[COLOR="Navy"]Sub[/COLOR] EmpPayOverTime()
[COLOR="Navy"]Dim[/COLOR] Employee [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]New[/COLOR] clsEmployee
[COLOR="Navy"]With[/COLOR] Employee
.EmpName = "Joe Bloggs"
.EmpRate = 100
.EmpWeeklyHrs = 45
MsgBox .EmpName & Chr(10) & Chr(9) & _
"Normal Hours: " & .EmpNormalHrs & Chr(10) & Chr(9) & _
"OverTime Hours: " & .EmpOverTimeHrs & Chr(10) & Chr(9) & _
"Weekly Pay : $" & .EmpWeeklyPay
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]With[/COLOR]
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Sub[/COLOR]
Code:
[COLOR="SeaGreen"]'***** Code 2[/COLOR]
[COLOR="SeaGreen"]'***** This is entered into a class module, named clsEmployee[/COLOR]
[COLOR="Navy"]Public[/COLOR] EmpName [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]String[/COLOR]
[COLOR="Navy"]Public[/COLOR] EmpRate [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
[COLOR="Navy"]Public[/COLOR] NormalHrs [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
[COLOR="Navy"]Public[/COLOR] OverHrs [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
[COLOR="Navy"]Property[/COLOR] [COLOR="Navy"]Let[/COLOR] EmpWeeklyHrs(Hrs [COLOR="Navy"]As[/COLOR] Double)
NormalHrs = WorksheetFunction.Min(35, Hrs)
OverHrs = WorksheetFunction.Max(0, Hrs - 35)
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Property[/COLOR]
[COLOR="Navy"]Property[/COLOR] [COLOR="Navy"]Get[/COLOR] EmpWeeklyHrs() [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
EmpWeeklyHrs = NormalHrs + OverHrs
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Property[/COLOR]
[COLOR="Navy"]Public[/COLOR] [COLOR="Navy"]Function[/COLOR] EmpWeeklyPay() [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Double[/COLOR]
EmpWeeklyPay = (NormalHrs * EmpRate) + (OverHrs * EmpRate * 2)
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Function[/COLOR]
[COLOR="SeaGreen"]'***** This is entered into a standard module[/COLOR]
[COLOR="Navy"]Sub[/COLOR] EmpPayOverTime()
[COLOR="Navy"]Dim[/COLOR] Employee [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]New[/COLOR] clsEmployee
[COLOR="Navy"]With[/COLOR] Employee
.EmpName = "Joe Bloggs"
.EmpRate = 100
.EmpWeeklyHrs = 45
MsgBox .EmpName & Chr(10) & Chr(9) & _
"Normal Hours: " & .NormalHrs & Chr(10) & Chr(9) & _
"OverTime Hours: " & .OverHrs & Chr(10) & Chr(9) & _
"Weekly Pay : $" & .EmpWeeklyPay
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]With[/COLOR]
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Sub[/COLOR]
Last edited by a moderator: