static 关键字的具体使用:
1.static 可以修饰方法,属性,代码块,内部类
2.使用static来修饰属性:
属性:按是否使用static修饰,又分为,静态属性和非静态属性(静态属性 vs 非静态属性(实例对象))
实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性,当修改其中一个的非静态属性时,不会导致其他对象中同样的属性值的修改
静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量,当通过某一个对象修改静态变量时,会导致其他静态变量调用此静态变量会是我们修改过的内容-------共享
static修饰属性的其他说明:
1.静态变量随着类的加载而加载
2.静态变量的加载要早于对象的创建
3.由于类只会加载一次,则我们的静态变量在内存中则也只会存在一份,存在我们的方法区的静态域中
4. 类变量 实例变量
5.我们不能通过类来调用我们的实例变量
3.使用static修饰方法:静态方法
①随着类的加载而加载,可以通过类的方式去调用,同样可以通过我们的对象调用
②类同样不能使用类来调用方法
③静态方法中:只能调用静态的方法或属性
④非静态方法中:既可以调用非静态的方法或属性,也可以调用静态方法和属性
⑤在静态方法中不能使用this,因为我们静态方法比对象更先存在,我们随着类的 加载就加载静态方法,那时还没有我们的对象
4.static注意点
①在静态方法内,不能使用this和super的关键字
②关于静态属性和静态方法的使用,大家都从声明周期的角度去理解
5.如何确定一个属性为static?
①我们属性不会随着对象的不同而不同,我们就可以声明为静态的
②
6.如何确定一个方法为static?
①操作静态属性的方法,我们通常设置为static的
②工具类中的方法,习惯上声明为static