final关键字有4种用法

在java的关键字中,static和final是两个必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。

final关键字有4中用法

1、修饰数据
在编写程序时,我们经常需要说明一个数据是不可变的,我们称为常量。用final关键字修饰的变量,只能进行一次赋值操作,并且在生存期内不可以改变它的值。

例:

class Value {
int v;
public Value(int v) {
this.v = v;
}
}

public class FinalTest {

final int f1 = 1;
final int f2;
public FinalTest() {
f2 = 2;
}

public static void main(String[] args) {
final int value1 = 1;
// value1 = 4;
final double value2;
value2 = 2.0;
final Value value3 = new Value(1);
value3.v = 4;
}
}

2、修饰方法参数

如果变量是我们自己创建的,那么使用final修饰表示我们只会给它赋值一次且不会改变变量的值。

如果变量是作为参数传入的,我们怎么保证它的值不会改变呢?这就用到了final的第二种用法,即在我们编写方法时,可以在参数前面添加final关键字,它表示在整个方法中,我们不会(实际上是不能)改变参数的值:

public class FinalTest {

/* ... */

public void finalFunc(final int i, final Value value) {
// i = 5; 不能改变i的值
// v = new Value(); 不能改变v的值
value.v = 5; // 可以改变引用对象的值
}
}
3.修饰方法
第三种方式,即用final关键字修饰方法,它表示该方法不能被覆盖。这种使用方式主要是从设计的角度考虑,即明确告诉其他可能会继承该类的程序员,不希望他们去覆盖这个方法。这种方式我们很容易理解,然而,关于private和final关键字还有一点联系,这就是类中所有的private方法都隐式地指定为是final的,由于无法在类外使用private方法,所以也就无法覆盖它。

4.修饰类
了解了final关键字的其他用法,可以想到使用final关键字修饰类的作用,final修饰的类是无法被继承的。

 

总结:

主要用法有以下四种:

1、用来修饰数据,包括成员变量和局部变量,该变量只能被赋值一次且它的值无法被改变。对于成员变量来讲,我们必须在声明时或者构造方法中对它赋值;
2、用来修饰方法参数,表示在变量的生存期中它的值不能被改变;
3、修饰方法,表示该方法无法被重写;
4、修饰类,表示该类无法被继承。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值