public class TestValue {
private static int a; public static void main(String[] args) {
modify(a);
System.out.println(a);
} public static void modify(int a) {
a++;
}}最后输出了:0
问:a是私有变量,也没有初始化过,怎么可以使用了呢
private static int a; public static void main(String[] args) {
modify(a);
System.out.println(a);
} public static void modify(int a) {
a++;
}}最后输出了:0
问:a是私有变量,也没有初始化过,怎么可以使用了呢
那么 Java 将变量自动初始化为 "似零" 的值,具体值由变量的数据类型决定: boolean false
byte 0
char \u0000
short 0
int 0
long 0
float 0.0
double 0.0
user-defined-type null
而且类的静态成员也有默认初值。故a为int,初值为0.
a是该类的静态成员,虽然是private,但main方法是该类的静态方法。
类的静态方法可以访问静态成员,所以可以访问a。
int是基本类型,modify方法里操作的a跟外面的a不是一回事。所以是0。