今日所学:final、static、查阅API
-------------------------------------------------------------------------------------------------------------
final 关键字:
一、作用于变量、方法和类。今日学习final修饰变量时,必须初始化!
- 修饰变量时,没有默认值;
- 只能赋值一次。
二、一般初始化对象属性有三种:代码块、构造函数、set方法。但是用final修饰变量后,不能用set方法。
(构造方法是给对象赋上初始值。而set方法:一个对象可以调用多次,去改变变量值。)
优先级:代码块 > 构造函数
三、如果用final修饰了变量,在用构造方法赋值,且有多个构造方法时,一定要每个构造方法都赋上初始值,即使你没有调用。
---------------------------------------------------------------------------------------------------------
static 关键字 (静态的)
1、简介:
作用域:属性、方法、类、代码块。
static修饰成员变量或者方法时,代表着变量或方法是属于类的(代表公共的),而不是属于某个具体实例的。实例具有使用权,可以访问可以修改,但不能占为己有。
所以this和super均不能用在static方法里,因为this指当前对象,super是(父类里的)实例对象的引用,不是类对象的引用。
2、优先级
从硬盘或者是网络上下载的字节码class文件,使用Java命令用-cp找到,加载到内存中,再通过JVM进行校验,然后开始初始化类,然后在main方法开始执行。
所以static{}的静态代码块 > {}代码块 > 构造方法。
类包括属性、方法和代码块。所以代码块和属性同等级别,需要按顺序执行。
静态的最先(静态的属性或静态的代码块 按顺序),然后非静态的代码块和非静态的属性按顺序,最后是构造方法。
3、静态方法里不可以访问非静态的变量。非静态方法里可以调用非静态或者静态的变量。
附加:如果变量用static和final修饰了,即代表常亮,变量名要大写
-------------------------------------------------------------------------------------------------------------
查阅API
1、看方法的入参、是否有返回值及返回类型、静态的可以直接用类名调用。
2、在jdk>src>java>lang里找到String源文件,lang包里的源文件可以直接访问,lang包的子包里的源文件需要用import导入。