对Java Static关键字的理解
说之前先让我们谈谈什么是成员变量和局部变量吧
- - 1) 成员变量:定义在类里面 ,可以不被初始化
- - 2)局部变量:定义在方法里面,必须进行赋值操作(也就是初始化) ;在执行该方法时局部变量才被创建,执行方法完毕后被销毁 ;同一作用域下不可以定义两个名称相同的局部变量 如图所示
- - 3)this关键字用来调用成员变量;
- - 4)静态方法无法访问成员方法和成员变量,可以访问静态方法和变量;而成员方法可以访问静态和成员的变量和方法
- - 5)抽象方法不能是静态
对于一个静态的数组,不太可能在声明的时候完成初始化,这时候需要在静态代码块中完成初始化 如以下代码
punlic class StaticDemo{
public static List<String> writes = new ArrayList<>();
static{
writes.add("理论1");
writes.add("理论2");
}
static{
writes.add("理论3");
writes.add("理论4");
}
}
- - 6)静态内部类可以访问外部类的所有成员,包括private变量;不存在静态外部类