static 修饰方法
1、static修饰的方法被称之为静态方法也叫作类方法,加static的方法,可以通过类名直接访问,也可以通过对象名访问,而不加static只能通过对象名访问,加了static的方法,不能再内部写this,因为直接用类名点方法的时候,没有当前对象
2、加了static的方法,不能再方法内部访问非static的属性和行为;
原因:1、在静态方法的内部无法确认非static的内容属于哪个对象,它是通过类名调用,这时没有对象----这就相当于工具类
2、static修饰的方法,在类加载的时候是被首先加载的,然后加载非static内容,所以加载static时 是不知道非static内容的
总结:只有调用的时候无需考虑对象时,才定义为static---工具类的工具方法,可以被定义为static方法
工具类:没有产生对象的必要,只要实现某个功能即可,哪个对象完成的都没有影响,比如:分页,转换时间,连接数据库等
工具方法:该方法在完成功能的时候,不会对对象的数据产生任何影响
凡是用static修饰的都有量大共性:
1、该内容与对象无关,只与类有关;
2、该内容总会在类加载器有特殊操作
注:static不能用来修饰构造方法,因为static修饰的是与对象无关的内容,而构造确实生成对象的五大方法之一
初始化块--------{
在这个块中可以书写任何语句
}
1、这是一个没有方法名、参数列表、返回类型的方法体
2、在这个块中可以书写任何语句,它在产生对象的时候自动被调用,它是用来美new出一个对象,就用来执行初始化的,又被称之为实例初始化块,这是与构造相重叠的,写在初始化块中的代码都可以写在构造方法中;但是他的执行顺序是先执行初始化块在执行构造
Static{
}----静态初始化块
1、与对象无关,满足static的特征,一个类只执行一次;
2、执行的时机是加载的时候
总结:可以再静态初始化块中书写一些运行前的准备工作,只运行一次,没有别的可以替代,可以节约运行时间和运行速度;
当调用者产生一个对象的时候
1、在堆中划分对象的空间;
2、在空间划分属性
3、执行实例初始化块
4、执行属性的赋值;
5、执行构造方法当中我们书写好的代码;
原文:https://www.cnblogs.com/wanggang1987/p/12173802.html