前言
nskswl加油~
static
- static是一个修饰符,用于修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。
- static修饰:属性、方法、代码块、内部类
- static修饰属性:静态变量(类变量):
1. 我们创建类类的多个对象,多个对象共享一个静态变量。当通过某个对象修改静态变量时,会导致其他对象调用此静态变量时,是修改过的。
2. static修饰属性的其他说明:静态变量随着类的加载而加载;静态变量的加载早于对象的创建;可以通过类名调用;由于类只会加载一次,则静态变量在内存中也只会存在一份,存在于方法区的静态域中。 - static修饰方法:静态方法
1. 可以通过类名调用
2. 静态方法中,只能调用静态的方法或属性;非静态方法中,两者的属性和方法都能调用。 - 在静态的方法中,不能使用this、super关键字。
单例设计模式
- 定义:采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。
- 如何实现?1. 私有化类的构造器 2. 内部创建类的对象 3. 提供公共的静态方法,返回类的对象 4. 要求此对象声明也必须是静态的(饿汉式)
main方法
- main()方法作为程序的入口
- main()方法也是一个普通的静态方法
- main()方法也可以作为我们和控制台交互的方式
代码块(初始化块)
- 代码块的作用:用来初始化类、对象
- 代码块如果有修饰的话,只能用static修饰
- 静态代码块 vs 非静态代码块
1. 静态代码块和非静态代码块都可以有内部输出语句
2. 静态代码块随着类的加载而执行,且只执行一次;非静态代码块随着对象的加载而执行,且随对象个数改变。
3. 静态代码块作用:可以对类的静态属性初始化。非静态代码块作用:可以在创建对象时,对对象的属性初始化。
4. 如果一个类中定义了多个静态代码块,则按照定义的先后顺序执行。
final
final可以修饰的结构:类、方法、变量
- final修饰一个类:此类不能被其他类继承。
- final修饰一个方法:此方法不可以被重写
- final修饰一个变量:此时的“变量”就成为一个常量
1. final修饰属性:可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器初始化
2. final修饰局部变量:尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参,一旦赋值以后,就只能在方法体内使用此形参,不能重新赋值。public void show(final int num)
- static final :用来修饰属性:全局常量。
ending~