public class Practice
{
static String string = "static filed";
static {
String strings = "static block";
static void show(){ //这是什么错误,求解
System.out.println("a method in static block");
}
}
public static void say() {
System.out.println(Practice.string);
// System.out.println(strings); 如何使用strings?
}
public static void main(String[] args) {
Practice.say();
}
}
------解决方案--------------------
public class Practise {
static String string = "static filed";
static {
String strings = "static block";
}
static void show(){ //静态方法不可声明在静态块中
System.out.println("a method in static block");
}
public static void say() {
System.out.println(Practise.string);
// strings 在静态块中,属于方法内的变量,是局部的,外部访问不到
// System.out.println(strings); 如何使用strings?
}
public static void main(String[] args) {
Practise.say();
}
}
------解决方案--------------------
静态代码块是类加载时自动执行的,方法不管是不是静态,都是需要调用的,如果你写在静态代码块里,外部怎么调用?
写静态方法直接写在类中就行啦。如果你要在静态代码块里写代码,不用写方法,直接写语句就行了。
一句话:写了方法,我们是为了调用它,你这么写就违背了我们设计的初衷。