Java学习笔记-final关键字

final关键字

final关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值。通常,由final定义的变量为常量。

  • final变量

    final关键字定义的变量必须在声明时对其进行赋值操作。final除了可以修饰基本数据类型的常量,还可以修饰对象引用。由于数组也可以被看作一个对象来引用,所有final可以修饰数组。一旦一个对象引用被修饰为final后,它只能恒定指向一个对象,无法将其改变以指向另一个对象。一个即是static又是final的字段只占据一段不能改变的存储空间。

    归纳如下

    • 类变量:必须在静态初始块中指定初始值或声明该类变量时指定初始值,而且只能在两个地方的其中之一指定。

    • 实例变量:必须在非静态初始化块、声明该实例变量或构造器中指定初始值,而且只能在三个点中的其中之一指定。

      public class FinalVariableTest
      {
          //定义成员变量时指定默认值,合法
          final int a=6;
          //下面三个变量将在初始化块或构造器中指定默认值。
          final String str;
          final int c;
          final static double d;
          {
              str="Hello";
          }
          static
          {
              //在静态初始化块中为类变量指定初始值,合法
              d=5.6;
          }
          //构造器,可对既没有指定初始值,又没有在初始化块中
          // 指定初始值的实例变量指定初始值
          public FinalVariableTest()
          {
              c=5;
          }
          public void changeFinal()
          {
              //普通方法不能为final修饰的成员变量赋值
              //不能在普通方法中为final成员变量指定初始值
          }
      
          public static void main(String[] args)
          {
              FinalVariableTest b=new FinalVariableTest();
              System.out.println(b.a);
              System.out.println(b.c);
              System.out.println(b.str);
          }
      }
      
  • final局部变量

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值