LESSON3
1、static关键字:可以用于修饰属性,也可以用于修饰方法,还可以修饰类
2、Static修饰属性:无论一个类生成了多少对象,所有这些对象共同使用一个唯一一份静态成员变量,如果一个对象对该静态成员变量进行了修改,其他对象的该成员变量的值也随之发生变化。如果一个成员变量是static的,那么我们他通过类名.成员变量名的方式来使用它(java推荐使用)。
3、Static修饰方法:static修饰的方法叫静态方法。通过类名.静态方法名的方式来
4、Final关键字:可以修饰属性,方法,类。
5、Final修饰类:当一个类被final修饰时,表示该类是终态类,该类不能被继承。
6、Final修饰方法:当一个方法被final修饰时表示该方法是一个终态方法,既不能被重写。
7、Final修饰属性:当一个属性被final所修饰时,比哦啊是该属性不能被改写。
8、当final修饰一个原生数据类型时,表示该原生数据类型的值不能发生变化(比如不能从10变成20);如果final修饰一个引用类型时,表示该引用类型不能在指向其他对象了,但该引用类型对象的内容是可以改变的。
9、对于final类型成员变量,一般来说有两种赋初值方式:a)在声明final类成员变量时就附上初值b)在声明final类型的成员变量时部赋上初值,但在类的所有构造方法中为其赋上初值。
10、Static代码块:静态代码块。在class文件从硬盘到java虚拟机上时(即类被加载)执行的,而构造方法是在生成对象时执行的。静态代码块的作用也是完成一些初始化工作。想要调用某个类来生成对象,首先将类加载然后在有这个类生成对象
11、类的静态代码块只会执行一次,是类在被加载时执行的,因为每个类只能被加载一次,所以只执行一次,而构造方法则不然,每次生成一个对象的时候就会调用类的构造方法一次。
12、如果继承体系既有静态代码块又有静态方法,那么首先执行最顶层的静态代码块,一直执行到最底层的静态代码块。然后再去执行最顶层类的构造方法一直到最底层类的构造方法。静态代码块只执行一次。
13、不能在静态方法中访问非静态变量,可以在静态中访问静态的成员变量,可以在非静态方法中访问静态成员变量
14、总结:静态的只能访问静态的,非静态的可以访问一切。
15、不能再静态方法中使用this关键字。