一.static修饰成员变量
类名.类变量(推荐)
对象名.类变量(不推荐)
二.类变量应用场景
1.成员变量有几种?各自在什么情况下定义?
*类变量:数据只需要一份,且需要被共享时(修改,访问)
*实例变量:每个对象都要有一份,数据各不相同(如name、score、age)
2.访问自己类中的变量,是否可以省略类名不写?
*可以的
*注意:在某个类中访问其他类里的类变量,必须带类名访问
三.static修饰成员方法
四.static修饰类方法的应用场景——工具类
使用类方法设计工具类的好处:提高代码复用;调用方便,提高开发效率
为什么工具类中的方法要用类方法,而不用实例方法?
*实例方法需要创建对象来调用,此时对象为了调用方法,对象占用内存,这样会浪费内存
*类方法,直接用类名调用即可,调用方便,也节省内存
*工具类没有创建对象的需求,建议将工具类的构造器私有
五.static注意事项
1.类方法中可以直接访问类的成员,不可以直接访问实例成员
2.实例方法中既可以直接访问类成员,也可以直接访问实例成员
3.实例方法中可以出现this关键字 ,类方法中不能出现this关键字
六.代码块
*静态代码块
格式:static{}
特点:类加载时自动执行,由于类只会加载一次,所以静态代码块也只会执行一次
作用:完成类的初始化,例如:对类变量的初始化赋值
*实例代码块
格式:{}
特点:每次创建对象时,执行实例代码块,并在构造器前执行
作用:和构造器一样,都是来完成对象的初始化的,例如:对实例变量进行初始化赋值
七.单例设计模式
1.饿汉式单例设计模式
写法
*把类的构造器私有
*定义一个类变量记住类的一个对象
*定义一个类方法,返回对象
2.懒汉式单例设计模式
写法
*把类的构造器私有
*定义一个类变量用于存储对象
*提供一个类方法,保证返回的是同一个对象