Question to classes: is it possible/allowed in OOP to use a class own method within the class?
Thanks in advance
Otto
Question to classes
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: Question to classes
Of course:
EMG
Code: Select all
::MethodName( params )
- James Bott
- Posts: 4654
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
Thank you Enrico and James,
I made an ‘invoice class’ and an ‘invoice position (record)’ class.
Now to calculate the line total I made a function inside the InvoicePositionclass.
Amount per price – SetText to a oSay.
Here I don’t know what to use a function or a method
METHOD New
oGet nAmount valid calculate() or ::calculate()
oGet nPrice valid calculate() or ::calculate()
oSay nTotal
return Self
func calculate()
return
METHODE calculate
Return nil
What would be the right way to define the variables (nAmount,nPrice): static, local and pass them, DATA?
Hope you will help me on that.
Thanks in advance
Otto
I made an ‘invoice class’ and an ‘invoice position (record)’ class.
Now to calculate the line total I made a function inside the InvoicePositionclass.
Amount per price – SetText to a oSay.
Here I don’t know what to use a function or a method
METHOD New
oGet nAmount valid calculate() or ::calculate()
oGet nPrice valid calculate() or ::calculate()
oSay nTotal
return Self
func calculate()
return
METHODE calculate
Return nil
What would be the right way to define the variables (nAmount,nPrice): static, local and pass them, DATA?
Hope you will help me on that.
Thanks in advance
Otto
- James Bott
- Posts: 4654
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
Otto,
>I made an ‘invoice class’ and an ‘invoice position (record)’ class.
>Now to calculate the line total I made a function inside the >InvoicePositionclass.
Ok, you picked a very complicated class to start with. An invoice is an object that contains other objects. The invoice object contains a customer object, and multiple line item objects (one for each item). So you need at least three classes to create an Invoice object.
>Amount per price – SetText to a oSay.
>Here I don’t know what to use a function or a method
In pure oop you never use functions. However, in our hybrid OOP system you try not to create functions, but you can use all the FW and Harbour functions. So if you need something new, then create a method.
>METHOD New
>oGet nAmount valid calculate() or ::calculate()
>oGet nPrice valid calculate() or ::calculate()
>oSay nTotal
>return Self
I'm not sure what you were trying to do with the above. The New() method should only initialize the object.
Perhaps you should start with a Customer class instead. It would much simpler than an Invoice class. There is discussion of a customer class in my OOP articles.
James
>I made an ‘invoice class’ and an ‘invoice position (record)’ class.
>Now to calculate the line total I made a function inside the >InvoicePositionclass.
Ok, you picked a very complicated class to start with. An invoice is an object that contains other objects. The invoice object contains a customer object, and multiple line item objects (one for each item). So you need at least three classes to create an Invoice object.
>Amount per price – SetText to a oSay.
>Here I don’t know what to use a function or a method
In pure oop you never use functions. However, in our hybrid OOP system you try not to create functions, but you can use all the FW and Harbour functions. So if you need something new, then create a method.
>METHOD New
>oGet nAmount valid calculate() or ::calculate()
>oGet nPrice valid calculate() or ::calculate()
>oSay nTotal
>return Self
I'm not sure what you were trying to do with the above. The New() method should only initialize the object.
Perhaps you should start with a Customer class instead. It would much simpler than an Invoice class. There is discussion of a customer class in my OOP articles.
James
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact: