概述
static
变量包括成员变量和局部变量;
成员变量按照是否由static修饰,分为类变量和实例变量,静态变量一般称为类变量。
类变量在内存中只有一个副本,被该类的所有实例共享,在类初次加载是会被初始化,而实例变量在内存中会有多个副本,是对象所拥有的,创建对象的时候被初始化。
static可以用来修饰变量、代码块、方法。
静态代码块只在类初始化时加载一次。而非静态代码块在每次调用构造方法时都会执行一次。
类加载的顺序是:静态代码块-->非静态代码块-->构造方法。
java语法规定:静态成员不能访问非静态成员,如果需要访问,则首先需要创建相应的实例对象,比如在main方法中调用实例方法需要先new对象。子类继承父类中的静态变量,指向的是内存中同一个值。
static关键字的作用就是用于区分成员变量、方法、内部类、初始化块这四种成员到底是属于类本身还是属于实例。
static修饰的成员变量和成员方法称为类变量和类方法;非static修饰的称为实例变量和实例方法。
final
在Java中,final关键字可以用来修饰类、方法和变量。
在使用final修饰类的时候,要注意谨慎选择,除非出于安全的考虑或者确定这个类不会用来继承,否则尽量不要将类设计为final类。如果想明确禁止该方法在子类中被覆盖,可以将将方法设置为final的。
对于一个final变量,如果是基本类型变量,则其数值一旦在初始化之后便不能更改;
java编译器会在编译时直接把这个变量所有出现的地方替换成它的值;
如果是引用类型变量,则在对其初始化之后便不能再让其指向另一个对象。当用final修饰类的成员变量时,成员变量必须在定义时或者在构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了。
this
this代表的是调用该方法的对象。根据this出现位置的不同,this作为对象的默认引用出现在两个位置:
1、构造器中,引用该构造器正在初始化的对象
2、方法中,调用该方法的对象
如果是对象内的一个成员直接调用另一个成员,可以直接省略this前缀
形参可变的参数与数组区别
形参可变的参数(String... names)实际上是一个数组参数,但是数组形式的形参可以处于形参列表任意位置,而形参可变的参数只能处于形参列表的最后
最后
以上就是可爱大叔为你收集整理的static、final、this的全部内容,希望文章能够帮你解决static、final、this所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复