Stuart McLachlan
stuart at lexacorp.com.pg
Fri Apr 15 19:15:20 CDT 2011
OK. A property is the the external name given to the state of one or more variables ( scalar or object) encapsulated within the class.. There, that's fixed it :-) -- Stuart On 15 Apr 2011 at 19:28, jwcolby wrote: > >> A PROPERTY is the external name given to a variable which is > encapsulated in the class. > > > LOL, absolutely and unequivocally not true. It is the name of some > data value associated with or encapsulated by the class but it is > simply *not* always and necessarily a variable. Nor is it an invalid > use of a property if it is not a wrapped variable! > > There are properties that do not even reference a variable at all and > they are perfectly valid uses of property. I can take three booleans > and return a true of all are true (and I do exactly that in one of my > properties). It is a property (English definition) that the class is > stopped when three child classes are all stopped. The child objects > use threads and write to a status control on a form. I cannot (don't > want to) close the form until they are all stopped - their threads are > no longer running. > > The form asks the manager if it is stopped when I try to close the > form. It does so by checking the boolean stopped property of the > manager. The boolean stopped property (get) asks the child objects if > they are stopped and returns a true if all three are true else returns > a false. > > It is not wrapping a variable, you can't set the stop variable, there > isn't one. It is a valid property however. > > I can take 16 booleans and "translate them" into an integer value from > 0 to 16 if that is what I need to do. A property (English) is a data > value, but it is not necessarily a stored value and in fact it is > quite often a calculated value. The fact that you personally say that > is bad practice doesn't impress me. If I use the property to > calculate a state (data item) of the class that is a property > (English) of the class the same as your stored value is. > > I understand perfectly well that a property is not a function (or > method) but it has more properties (English) of a function than a > variable - public or otherwise. I used "function with quotes at the > start of the thread to clearly denote that a property was not a > function. > > However a property (keyword) is a call. It pushes the current address > pointer on the stack. A property set (or let) pushes the value on the > stack. Inside of the property other lines of code can and do run. A > property does not inherently have any storage. They can do anything > that is logical for a property to do. > > When it returns it's value (if a get) is placed on the stack and it > unwinds the stack. > > Sounds much more "function" than a dimensioned variable. > > Drew mentioned my "soap box". I do not have a soap box, I am simply > insisting that we acknowledge the facts. I have no idea what goes on > in VB6 because I do not use it. However I have used a class or two > (or three maybe?) in Access so I do understand VBA. Obviously Drew is > a better (and wittier) programmer than I but let's attempt to > understand (and discuss so others can understand) what these things > are, what they do and when we are using an English definition and when > we are using a keyword, and when we are just using a vague kinda sorta > definition. > > And when we are using an object. A property is also often an object > in OO environments. > > John W. Colby > www.ColbyConsulting.com > > On 4/15/2011 6:33 PM, Stuart McLachlan wrote: > > Sorry, I can't agree with you there. > > > > A METHOD is a function. > > > > A PROPERTY is the external name given to a variable which is > > encapsulated in the class. i.e. for all intents and purposes outside > > of the object, it IS the variable. > > > > "PROPERTY SET" and "PROPERTY GET" are methods. > > > > The fact that you can also perform other actions when you SET a > > variable is irrelevant. You should be doing what it is saying and > > setting the value of the variable. When you GET it, you should be > > retrieving the value of the variable. > > > > Wiile it is possible to create SET/GET functions for a property so > > that GET doesn't return what is SET, it is a gross abuse of the > > whole Object concept. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com >