Global variables:It is also called a member variable, which is a variable defined in the class and is valid throughout the class. Global variables can also be divided into class variables and instance variables.
1. class variable: static variable. It can be called directly by class name or object, in addition, all the same class variables of the object share the same memory space.
Example 1
The code is as follows: |
Copy code |
Tst. java, no main () method Package com. blogchina. qb2049; Public class Tst { Static {System. out. println ("111111 ");} } Running result: 111111 Exception in thread "main" java. lang. NoSuchMethodError: main |
Static final variable, which must be initialized at the time of declaration or in the static block.
So if you want to use program input as its variable, you must modify the variable type.
You can write
The code is as follows: |
Copy code |
Public class xx { Public final String PackageName; Public xx (String name) { PackageName = name; } } |
Define a xx static instance public static xx xxInstance = new xx ("input value ");
When calling, it will write xxInstance. PackageName
2. Instance variables:Without static modification, it can only be called through objects, and the same instance variables of all objects share different inner storage spaces.
Local variables:It refers to the variables and method parameters defined in the method body. It is valid only in the method that defines it.
Let's take a look at the following two procedures:
The code is as follows: |
Copy code |
Procedure 1: Public class Variable { Int I; Void test () { Int j = 8; If (j = I) System. out. println ("equal "); Else System. out. println ("not equal "); } Public static void main (String [] args) { Variable v = new Variable (); V. test (); } } Procedure 2: Public class Variable { Void test () { Int I; Int j = 8; If (j = I) System. out. println ("equal "); Else System. out. println ("not equal "); } Public static void main (String [] args) { Variable v = new Variable (); V. test (); } }
|
The first program is normal and there will be no errors during compilation. The second program will prompt the following error during compilation:
D: Programjavatest> javac Variable. java
Variable. java: 9: Variable I may not be initialized
If (j = I)
^
1 Error
This error occurs because the member variable has a default value. (if it is modified by final and has no static value, it must be explicitly assigned.)
Note: If the name of a local variable in a method is the same as that of a global variable, the global variable is temporarily invalid in this method.