"attribute" and "property" are often used interchangeably.
As for "parameter" vs. "argument", well, there are
formal parameters and
actual parameters. An "argument" would probably be an actual parameter in most cases that they are referred to as such.
In the above example, s is the formal parameter in the Foo() constructor. At the same time, s becomes the actual parameter (argument) in the call to setProp(). In setProp(), fp is the formal parameter.
In the case of p, it is an instance variable of the Foo class. It can be referred to as a field, a property, or an attribute. You could run into folks who will object to p being called an attribute and would prefer to keep it abstract and say that the Foo class has a
Prop attribute that can be accessed via the getProp() method. To these type of folks, p is just an implementation detail. I'm not such a stickler for semantics so I'll just usually go with whatever everybody or most everybody understands (although I will usually object to calling something a Value Object instead of a Data Transfer Object)
HTH
[ May 03, 2005: Message edited by: Junilu Lacar ]