This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes final variables Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "final variables" Watch "final variables" New topic

final variables

Yat Cheung

Joined: Jul 18, 2001
Posts: 15
Is there any point in declaring variables like this ...
private static final int BLAH_1 = 0;
private static final int BLAH_2 = 0;

or since I've made it private I may as well declare it ...
private final int blah1 = 0;

I often declare variables with different names but with same values to make my code more readable so I can say stuff like if (field == BLAH_1)

Or should I declare these as
public static final int BLAH_1 = 0
though I am unlikely to use them outside the class they are declared.

Just some thoughts I had which I'd like to clarify to myself really so any comments appreciated
Steve Luke

Joined: Jan 28, 2003
Posts: 4165

I generally will go the approach of making them private static final variables if they are to be constants which are the same for all instances of the class. I also will use different variable with the same value sometimes when they would have different meaning in different situations. so I guess I usually work more like your first example:
private static final int BLAH_1 = 0;
private static final int BLAH_2 = 0;

(nowadays I do try to avoid these things altogether when I can replace them with enums though)

-edit-Sorry, had the vars as public, but should have been private

Siva Masilamani
Ranch Hand

Joined: Sep 19, 2008
Posts: 385

Since you are declaring the variable as constant anyway you cannot change that value.But if you just want to use that variable you need to create an object for each and every time.If instead the variable is declared as static final then there is no need to create objects which may save some memory.


Failure is not an option.
It is sorta covered in the JavaRanch Style Guide.
subject: final variables
Similar Threads
Regarding Enums
Using final as program-wide variables
Member Variables
Integer int question
Scissors-rock-paper game looking for better way to write the program