From: <ne...@ho...> - 2002-08-14 01:47:02
|
mike dillon wrote: >begin Phillip Richdale quotation: > > >>I'm actually aware of the difference - allthough what is the cause of >>them being differed with the terms 'static' and 'non-static' I >>couldn't exactly say just now. >> >>A wild guess would be 'static' as in "not changable during runtime as it's >>the "plan" from which runtime stuff is made - hence *class* of objects", as >>opposed to 'non-static' as in "the runtime object thingy of a certain class >>you just made real and therefore can mess around with it's methods" >> >> > >I'm not exactly clear on the motivation for calling class-level members >"static", but it doesn't mean that aren't changeable. A "final" field >cannot be changed once it has been assigned a value. A static field >differs from one that is not static in that the field is shared by all >instances of an object. A static method differs from a normal one in >that there is no topical object instance, i.e. "this" reference. > > I never really thought about the origin of the static keyword before you raised this question. This seems to make sense: References to a static member (method or variable) can be resolved at class load time ("linkage"). There is no ambiguity as to which member is being accessed. On the other hand, object methods or variables accessed via an object reference must be resolved dynamically to support polymorphism. In the first case, the actual method invoked may belong to any assignment-compatible class. In the latter case, the actual variable accessed may belong to any assignment-compatible object. Jim |