问个java中静态成员变量的问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 17:16:53
在定义一个对象的时候,该对象的成员变量是包括类中全部的成员变量还是只包括类中的非静态成员变量。比如先定义一个类:
class lei{
int a;
static int b;
}
然后在main方法中创建这个类的一个对象,问:严格来说这个对象包括“b”这个成员吗?(因为“b”是静态的成员变量,所以应该是属于该类本身的,不属于某一对象的,不知道这么说对不对)

属于的,当你在main方法中实例化lei的时候,类加载器开始加载有lei这个类,这时候会首先加载lei的静态成员,静态属性和静态方法,然后才加载非静态的成员,最后调用构造方法.所以a和b都是属于lei的,只是加载的时间不一样,如果实例化类,那他们都属于对象.

静态变量是在类被读取的时候初始化的,所以静态变量是在对象被创建之前就已经被初始化过了。

对象的创建与否都与静态成员变量无关的

对啊,静态变量是属于该类的,而不属于某一个对象(或实例)
创建的对象是某个类,所以当然"b"也是实例的成员了...我个人理解