一、static总结:
1.static定义:①static被称为静态,可以用来修饰类的属性或者方法。
②如果类的某个属性,不管创建多少个对象,属性的存储空间只有唯一的一个,那么这个属性就应该用static修饰,被static修饰的属性被称为静态属性。
③static属性可以使用对象调用,也可以直接用类名调用。
④静态属性是类的所有对象共享的,即不管创建了多少个对象,静态属性在内存中只有一个。
2.static属性:
public class Employee {
private String name ;---------非静态属性
private double salary; ---------非静态属性
private static int count;---------静态属性
}
3.static方法:①定义:如果某个方法不需要与某个特定的对象绑定,那么该方法可以使用static修饰,被static修饰的方法称为静态方法。
②作用:static方法可以使用对象调用,也可以直接用类名调用,建议用类名直接调用。
③何时使用static方法:如果某个方法与实例无关,也就是说不管哪个对象调用这个方法,都执行相同的操作,与对象没有关系,则应该定义为静态方法。不需要创建对象后再使用该方法。
④任何方法都可以直接调用静态方法;静态方法不能直接调用非静态方法,需要创建对象,用对象名调用非静态方法。
4.static块:①static块和static的属性以及方法的性质是相同的,用static修饰的代码块表示静态代码块,当Java虚拟机加载类时,就会执行该代码块。
②静态块只有在类加载的时候被执行一次,不管创建多少个对象,都不会再执行。
③如果一个类加载的时候,总要预先做一些事情,则可以放在静态块中,例如,读取一个属性文件,进行一些常规配置,写一些日志等。
④一个类中可以有多个静态块,按照顺序执行。
二、final总结:
1.static定义:用于声明属性,方法和类。
①属性:定义就必须直接赋值或者在构造方法中进行赋值,并且后期都不能修改。
②方法:定义必须有实现代码,并且子类里不可被覆盖。
③类:不能被定义为抽象类或是接口,不可被继承。
2.final修饰属性:当final修饰属性时,基本数据类型的属性将成为常量,不能被修改。一些数学定理中的常量经常使用final修饰。
比如,π= 3.14159265358979,E= 2.718281828459045。
3.final属性的赋值:①在声明时同时赋值,往往与static一起使用。
②声明时不赋值,必须在构造方法中逐一赋值。
③总的原则:保证创建每一个对象的时候,final属性的值是确定的。
4.final修饰参数:在方法参数前面加final关键字,为了防止数据在方法体中被修改。