前言
整理的一些关于static关键字的一些知识点,入门基础,会持续补充,希望大家可以互相学习。
static关键字
static关键字概述
static是一个静态修饰符关键字,表示静态的意思,可以修饰成员变量和成员方法以及代码块。
static关键字的使用
static修饰成员变量
当 static 修饰成员变量时,该变量称为类变量。该类的每个对象都共享同一个类变量的值。任何对象都可以更改该类变量的值,但也可以在不创建该类的对象的情况下对类变量进行操作。
static修饰方法
-
被static修饰的方法会变成静态方法,也称为类方法,该静态方法可以使用类名直接调用。
-
静态方法中不能出现this关键字
-
静态方法中只能直接访问静态成员变量和静态成员方法
-
静态方法中不能直接访问非静态成员变量和非静态成员方法
- 可以通过引用类访问
- 将非静态改为静态(不建议使用,耗内存,丧失面向对象意义)
-
非静态方法中可以直接访问一切成员变量和成员方法
-
子类中出现了和父类一样的静态方法,这不叫方法重写,只是长得像方法重写。
静态代码块
格式:
static{}
位置: 类中,方法外
执行: 当类被加载的时候执行,并只执行一次
使用场景: 例如加载驱动,这种只需要执行一次的代码就可以放在静态代码块中
注意
- 非静态方法和成员,创建了类有对象之后才有。
- this是有了对象之后的。
- 静态方法和成员,在类加载时就被加载,属于类。所以不能调用非静态。
类什么时候被加载?
在需要调用的时候被加载。
main方法为什么是static修饰
我们并不知道这个main方法会放到哪个类当中,也不知道是否是要产生类的一个对象,为了解决程序的运行问题,我们将这个main方法定义为static,在类加载的时候就可以执行main方法,作为java程序的一个入口。
什么样的变量用static修饰?
全局变量,全局方法,可以定义在一个类中方便调用