static关键字
static是静态的意思,可以修饰成员变量,表示该成员变量只在内存中存储一份,可以被共享访问,修改。
static修饰变量
//定义静态成员变量public static int 变量名;/*1、调用静态成员变量*///调用静态成员变量(类名.静态成员变量名)User.OnlineNumber++;//另一种调用方式,在同一个类中,调用静态成员变量可以不加类名System.out.println(OnlineNumber);
package com.osskey.staticdemo;public class User {//定义静态成员变量public static int OnlineNumber = 100;//定义实例成员变量private String name;private int age;public static void main(String[] args) {/*1、调用静态成员变量*///调用静态成员变量(类名.静态成员变量名)User.OnlineNumber++;//另一种调用方式,在同一个类中,调用静态成员变量可以不加类名System.out.println(OnlineNumber);/*2、调用实例成员变量*///System.out.println(name);User u1 = new User();u1.age = 20;u1.name = "张三";System.out.println(u1.name);}}
static修饰方法(一次编写,处处可用)
- 什么时候用静态成员方法?
如果该方法是以执行一个通用功能为目的,或者需要方便访问,则可作为静态成员方法
static实际应用案例:使用静态方法定义工具类
使用工具类生成一个5位随意验证码工具类
注意:工具类内,一般将构造器私有,目的是禁止其他方法利用工具类创建对象,原因是工具类不需要创建对象,只需要提供内部静态方法作为工具使用
package com.osskey.staticdemo.static_tools;public class tools {public static void main(String[] args) {//静态方法调用,类名.方法名VerifyTool.CreateCode();}}
package com.osskey.staticdemo.static_tools;import java.util.Random;public class VerifyTool {/*工具类私有*/private VerifyTool() {//将工具类私有,禁止创建对象}public static void CreateCode(){//开发一个验证码//1、定义一个String对象,存放所有可能存在的验证码String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";String code = "";Random random = new Random();for (int i = 0; i < 5; i++) {int index = random.nextInt(chars.length());code += chars.charAt(index);}System.out.println("验证码为:"+code);}}
static访问需要注意的点
- 静态方法只能访问静态成员变量,不可以直接实例成员变量,因为实例成员变量是属于对象的,只能创建对象访问实例成员变量
- 实例方法可以访问静态成员变量,也可以访问实例成员变量
- 静态方法不能出现this关键字
static应用:代码块
代码块是类的五大成分之一(成员变量,构造器,方法,代码块,内部类),定义在类中方法外。在JAVA类中,用{}括起来的代码,叫做代码块
代码块分类:
1、静态代码块
- 格式:static{}
- 作用:通过static关键字进行修着类的加载而加载,并且自动触发只执行一次
- 使用场景:在类加载时做一些数据的静态初始化,方便后续使用
2、动态代码块(每次创建对象时,都会执行动态代码块的内容,再执行构造器内容)
- 格式:{}
- 特点:每次创建对象,调用构造器执行时,都会执行该代码块中的代码,并且在构造器执行前执行
- 作用:初始化实例资源
statci应用:单例设计模式
- 什么是设计模式?
设计模式是一套被前人反复使用,多人知晓,经过分类编目的代码设计经验总结,后来者可以直接拿来解决问题。
- 什么是单例设计模式
可以保证系统中,应用该模式的这个类永远只有一个实例,简单来说:一个类永远只能创建一个对象。
- 单例模式的场景和作用
例如任务管理器对象我们只需要一个就够了,就可以解决问题了。单例模式可以节约内存。
