JAVA, 静态成员变量static相关
如图,请解释以下四个选项,哪里错误,为什么错误?哪里正确?需要对每个选项详细解释,谢谢
A错, 静态变量是类共有的,即每个对象都拥有同一个变量
B错, 可以通过对象名.成员变量名,也可以通过类名.成员变量名访问
D错,静态方法中,可以直接访问静态成员变量
public class TestDemo {
public static void main(String[] args) {
new Student();
/*
Person_静态初始化块
Student_静态初始化块
Person_初始化块
Person_Person()
Student_初始化块
Student_Person()
*/
}
}
class Person {
// 静态初始化块, 当类第一次被使用的时候会执行一次静态初始化块里面的代码
static {
System.out.println("Person_静态初始化块");
}
// 初始化块, 初始化块里面的代码会被拷贝到每个构造方法的头部
// 每次创建 Person 对象的时候都会执行一次初始化块里面的代码
{
System.out.println("Person_初始化块");
}
public Person() {
System.out.println("Person_Person()");
}
}
class Student extends Person {
// 静态初始化块, 当类第一次被使用的时候会执行一次静态初始化块里面的代码
static {
System.out.println("Student_静态初始化块");
}
// 初始化块, 初始化块里面的代码会被拷贝到每个构造方法的头部
// 每次创建 Student 对象的时候都会执行一次初始化块里面的代码
{
System.out.println("Student_初始化块");
}
public Student() {
System.out.println("Student_Person()");
}
}