Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Intermediate
Mar 27, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Getting Around Global Variables

In many programming languages such as C or Pascal, most users have come across global variables. Like this C example:

   int GlobVar = 0;	// Global variable
   void f(int x)		// Function to change variable.
      GlobVar = x;
Java does not have such variables. However, there is a simple way to get around this, wrap the code in class declarations—like so:
   public class GlobalVariables {
      public static int v = 0;
      public static void f(int x) {v = x;}
[v] may be refered to with with: [GlobalVariables.v]

Note that the [static] keyword is used in declaring these class members so that they do not reference or operate on specific class object instances. [final] may be used in declaration to "finalize" a value, i.e., make it a constant. Related constants may be grouped like so:
public class body {
	public static final long text = 0xffffff;	// Fixed [final] used
	public static final long bgcolor = 0;	// Fixed [final] used
	public static long link = 0xff0000;		// Changeble: [final] not used
	public static long vlink = 00ff00;		// Changeble: [final] not used

public class keyboard {
	public static final String layout = "US";	// Fixed [final] used
	public static final String keys = 101;	// Fixed [final] used
Individual constants may be refered to with expressions like these:
	int k = keyboard.keys;
	long linkcolor = body.link;

Note if you're using a class simply for packaging purposes (like this), it really doesn't make sense to create a new instance of the class. So, you can declare a private constructor:
	private Body() {}
A constructor executes when an instance of the class is created, but not with a private constructor.
Jeremy Chen
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date