面向对象进阶
静态关键字static
static关键字的作用,修饰成员变量的用法
-
static是静态的意思,可以修饰成员变量,表示该成员变量只在内存中只存储一份,可以被共享访问,修改
-
成员变量分类:
-
静态成员变量(有static修饰,属于类,内存中加载一次):常表示在线人数信息等这种需要被共享访问的信息
- 访问方式:
- 类名.静态成员变量 (推荐)
- 对象.静态成员变量 (不推荐)
- 访问方式:
-
实例成员变量(无static修饰,存在每个对象中):常表示姓名,年龄等属于每个对象的信息
- 访问方式:
- 对象.实例成员变量
public class User{ //静态成员变量 public static String maxLimit = 160; //实例成员变量 private String name; private int age; private double salary; public static void main (String[] args){ //类名.静态成员变量 User.maxLimit++; System.out.println(maxLimit); //同一个类中访问静态成员变量,类名可以省略不写 //对象.实例成员变量 User u1 = new User(); u1.name = "芜湖"; System.out.println(u1.name); } }
- 访问方式:
-
static修饰成员变量的内存原理
image.pngstatic修饰成员方法的基本用法
-
成员方法的分类
- 静态成员方法(有static修饰,属于类),建议使用类名访问,也可以使用对象访问
- 实例成员方法(无static修饰,属于对象)只能用对象出发访问
-
使用场景:
-
表示对象自己的行为的,且方法中需要访问实例成员的,则该方法必须申明成实例方法
例如学生对象的学习,唱歌,跳舞这种属于对象自己的行为,方法中必须访问实例成员变量
-
如果该方法是以执行一个通用功能为目的,或者需要方便访问,则可以申明成静态方法
例如求两个数的最大值这种通用的功能性的方法
-
static修饰成员方法的内存原理
image.pngstatic实际应用案例:使用静态方法定义工具类
-
对于一些应用程序中多次需要用到的功能,可以将这些功能封装成静态方法,放在一个类中,这个类就是工具类
-
工具类的作用:一是方便调用,二是提高代码的复用
-
建议将工具类的构造器私有,不让工具类对外产生对象(可以达到节约内存的目的)
将构造器私有即为类创建私有的无参构造
-
实例方法需要创建对象调用,此时使用对象只是为了调用方法,这样只会浪费内存,因此工具类不适用实例方法创建
static的注意事项
- 静态方法只能访问静态成员,不可以直接访问实例成员(可以创建对象去访问)
- 实例方法可以访问静态成员,也可以访问实例成员
- 静态方法中不可以出现this关键字
网友评论