public class Foo {
static int x;
public void go(){
System.out.println(x);
}
}
正确:普通方法调用static变量时必须要用类名.的格式,但是在本类中可以省略不写
class Foo2{
int x;
public static void go(){
System.out.println(x);
}
}
错误:静态方法调用非静态变量的时候必须使用类对象,new一下用就好了。
class Foo3{
final int x;
public void go(){
System.out.println(Foo5.x);
}
}
错误i:final修饰的变量必须有初始值否则报错
class Foo4{
final static int x;
static {
x=42;
}
}
正确:static代码块是类加载时时比类中其他加载都早的,所以在final之前就已经被初始化了
class Foo5{
static final int x=12;
public void go(){
System.out.println(Foo5.x);
System.out.println(x);//普通方法调用静态变量时必须使用类名.//但是在本类中可以省略
}
}
正確:普通方法调用static变量时必须要用类名.的格式,但是在本类中可以省略不写,并且final也有值
class Foo6{
static final int x=12;
public void go(final int x ){
System.out.println(x);
}
}
正确:成员变量作为形式参数已经传入到方法内
class Foo7{
int x=12;
public static void go(final int x){
System.out.println(x);
}
}
正确:与上述相同,但是注意x形式参数final传入的时候,只是传入进了成员方法,与其他方法无关。