Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Understanding static reference to new object

 
Mark O' Sullivan
Ranch Hand
Posts: 160
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I'm a bit confused about the use of the static keyword in the following case:
In 1 class I see this declared at the top of the class say called Data:

in constructor of same class:

What exactly does above do? I know the general stuff about:
(1) making a static reference to an object at start of class.
(2) making a static reference to a static method and initializing variables there.
I understand that is a static reference and only 1 copy exists for the class, but in the constructor is 1 creating a new object each time it's called for this static reference? Is there a point to this? Any help much appreciated as I find this confusing.
Thanks.

 
Francisco Montes
Ranch Hand
Posts: 30
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What i see here is that the value of the static variable (for which, indeed, there is only one copy at class level) will always be changed everytime a new instance of that class is created.

Like you said, maybe it is not so useful to do something like that. Then again, maybe it is for that particular project. :-)
 
Campbell Ritchie
Sheriff
Posts: 48445
56
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It might be better to initialise a static variable like that in a static initializer block.
 
John de Michele
Rancher
Posts: 600
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell:

Agreed. I would also argue that the original code is an example of how not to use static variables.

John.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic