文章目录
static成员
举例:一个班的学生,在实例化每个人的名字,年龄,学号等学员信息时都不一样,但他们的班级是同一个,那需要每个学生都写这个教室对象吗,这样代码量太繁琐了,如果只需要写一次ClassRoom,让大家共享它,这就需要static去修饰ClassRoom。
static修饰成员变量
static修饰的成员变量,称为静态成员变量
静态成员变量最大的特性:不属于某个具体的对象,是所有对象所共享的
注意(重点):
- 通过类名调用静态成员变量或者静态成员方法,它们不依赖于对象
- 在静态方法中不能调用非静态成员变量或者非静态成员方法,例如this
- 被static修饰的变量只能是成员变量(类里),不能是局部变量(方法里)
static成员变量初始化
静态成员变量的初始化分为两种:就地初始化 和 静态代码块初始化。
- 就地初始化
就地初始化指的是:在定义时直接给出初始值 - 静态代码块初始化
代码块
1.构造代码块
- 静态代码块
使用static定义的代码块称为静态代码块。一般用于初始化静态成员变量。
static做题的注意事项 (重点):
1 静态代码块先执行
然后执行构造代码块
最后执行对应的构造方法
- 被static修饰的代码 只执行1次,不管后面再new几个对象,都是无效的。(重点)
- 如果成员变量有好几个static修饰,会遵循从上到下的顺序计算(重点)
对象的打印
写show方法打印对象
调用toString打印对象
不想写show方法打印对象,可以调用toString打印对象
鼠标右键
总结
今天就学到这,学太多反而有点混乱了,效率也不高,最后这个代码块和打印对象看了四五遍才看懂,不是说很难理解,可能太累了,效率变慢了。