一、static关键字
static :静态的——属于类的
动态的是属于对象的
注意:
属于对象的,那么每个对象都独有一份;属于类的,是所有的对象共有一份
static修饰方法:
凡是加了static的,都是属于类的,凡是属于类的,都是被所有的对象共享
访问方式:
对象.方法名(参数列表)
类名.方法名(参数列表)——推荐使用
总结:
1、静态的方法里面不能访问非静态的方法和属性
2、非静态的方法里面可以访问非静态的方法和属性以及静态的方法和属性
3、静态的方法只能访问静态的方法和属性
4、静态的方法不能被重写
二、final关键字
可以修饰方法、属性类
修饰类:
public final class 类名{}
意义:如果一个类被申明为fainl,那么表示这个类是终极类,这个类不能被其他类继承
修饰方法:
public final int get() {}
意义:代表这个方法是终极状态的,也就是说这个方法不能被重写
修饰属性:
public final int age =20;
public static final int age =20;
意义:表示属性是终极状态的,也就是说属性是一个常量,一旦赋值以后就不能被修改
三、常量的初始化方式
1、在申明的时候初始化:public final int sal =100;
2、在构造器中不能初始化静态,要在非静态中初始化
3、在静态代码块中初始化
public static final double weigth;
static {weigth = 100;}
4、动态代码块中初始化:
{weigth = 100;}
执行的先后顺序:
先执行父类里面的静态代码块,再执行子类里面的静态代码块..................
静态(父)——静态(子)——动态(父)——构造方法(父)——动态(子)——构造方法(子)
四、this和super的区别:
this();当前构造方法
super();父类构造方法
this.get;当前普通方法
super.get;父类普通方法
this.a;当前属性赋值