static关键字的特点(可以修饰成员(即成员方法和成员变量,绝对不能修饰局部变量;)):
1:随着类的加载而加载;
2:优先于对象而存在;
3:被所有对象共享;
4:可以被类名调用;
使用注意;
1:被static修饰的方法;只能使用static的成员(但是非静态也可以访问静态);
2 静态方法不能使用this,super等关键字(没有对象怎么用this);
3:主函数是静态的(即main函数);
如:国籍都是一样的;则我们可以用static修饰国籍:static String country;(共享数据);
但是不能什么都是静态的,因为对象里面有一些自己的数据,如name;
**:成员变量(也叫实例变量即对象存在,实例变量才存在)和静态变量的区别:
1: 2个变量的生命周期不同:
实例变量随着对象的创建而存在,随着对象的别回收而释放;
静态变量随着类的存在而存在,随着类的消亡而消亡;
2:调用方式不同:
成员变量(实例对象)只能被对象调用;
而静态变量(类变量)可以被类名调用,也可以被对象调用(一般不这样干)
3:存储位置不同;
实例变量存在堆中;
类变量存在方法区中的静态区(也叫数据共享区);
|
|