我是靠谱客的博主 可爱大叔,最近开发中收集的这篇文章主要介绍static、final、this,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部