Java关键字之final

final是Java中的一个关键字,可以用在声明变量,声明函数参数,声明函数,声明类四个地方。

1.声明变量:用final声明的变量,说明该变量不可修改,仅可初始化,也必须初始化,初始化的位置可以是构造函数中,构造代码块中,或者立即初始化(空白final)。By the way,final声明的变量如果是引用类型的话,是说明这个引用的地址不可改变,而引用所指的对象中的数据域是可以改变的。

public class Test
{
        public static void main(String[] args)
        {
            A a = new A();
            a.array[0] = 99;         //引用地址没变
            a.array = new int[2];    //引用地址改变,error
        }
 }
 class A
 {
        public final int[] array = new int[5]//一定要初始化
 }

2.声明函数参数:该变量不可修改
 public static void f(final int a)
 {
        a = 2;//error
        //eclipse:The final local variable a cannot be assigned. It must be blank and not using a compound assignment
 }

3.声明函数:该函数可继承,不可重写(子类仅有使用权,而没有修改权)。若父类中有一个函数用final关键字声明,那么他的子类就不可重写这个函数。另外,编译器会优化final声明的函数(内嵌调用),不过不应该依靠这种优化方式。


4.声明类:该类不可继承,在Java中,例如String、Math都是用final声明了的类,不可继承。


5.final和private:类中所有的private方法都隐式的指定为final,所以private方法无法被重写
class Super 
{
	private void f()
	{
		
	}
}
class Sub extends Super
{
	private void f()  //并非覆盖父类中的f(),仅仅只是重名而已
       {
		
	}
}


以上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值