static:(静态) 成员修饰符;
创建对象是为产生实例,并对数据进行封装,
但有些方法在运行时却没有用到对象中封装的数据,
这时可以使用 static 关键字;
1, 被 static 修饰的方法不仅可以被对象调用,还可以被类名调用;
2, 不是所有方法都能加 static ;
如果一个方法不需要访问类中定义的成员变量(非静态)时,该功能就需要 static 修饰;
注意:
1,静态方法不能访问非静态的成员,但非静态可以访问静态成员。
2,静态方法中不允许出现this,supre关键字;
特点:
1,静态随着类的加载而加载
2,静态优先于对象存在,被对象共享;
3,因为静态先存在于内存中,无法访问后来的对象中的数据,所以静态无法访问非静态;
4,内部不能有this,是因为这时对象有可能不存在,this没有任何指向;
静态变量;
每个对象的成员变量的值都一致时,用 static 修饰该变量;
静态变量和成员变量的区别;
1,所属不同。
静态变量属于类,成员变量属于对象;
2,调用不同。
静态变量可以被对象和类调用(一般都用类名调用)
成员变量只能被对象调用;
3,加载时期不同。
静态变量随着类的加载而加载;
成员变量随着对象的加载而加载;
4,内存存储区域不同。
静态变量存储在方法区中,(数据共享区)
成员变量存储在堆内存中;
|
|