Java中final关键字

1 final关键字

在Java中final被称为终结器,可以使用final来定义类、方法、属性。

1.1 final修饰类

当一个类被final关键字修饰表示该类不允许被继承,一旦一个类被final修饰,该类的所有方法都会默认加上final(成员变量不会加final)
在这里插入图片描述
工具类用final修饰比较安全,用户用到的工具方法都是一样的,不会被覆写。

1.2 final修饰方法

当一个方法被final修饰明确表示该方法不允许被覆写
当一个方法被private修饰后,相当于加了final关键字,即不可以覆写,所以方法覆写不能出现private关键字
在这里插入图片描述

1.3 final修饰属性—常量

1.3.1 final修饰普通数据类型的成员变量

被final修饰的成员变量必须在声明时(构造块,构造方法)初始化,并且初始化后值无法修改。
在这里插入图片描述
在这里插入图片描述

1.3.2 final修饰引用数据类型的变量

final修饰属性,无论是普通数据类型的成员变量,还是引用数据类型的变量其本质都是值不能被改变,对于引用数据类型即就是指向堆内存空间的栈内存空间的地址不变,但是堆内存空间里的内容却可以被改变。

class Person{
    public String name="t";
    public int age = 20;

}  
public class Test{
    public static void main(String[] args)
    {
        //final修饰属性 属性值不能被改变
        //即指向Person对象的地址不能改,但是里面的内容却可以改
      final  Person person = new Person();
      person.name="w";
      person.age=10;
      System.out.println(person.name);
      System.out.println(person.age);
    }
}

在这里插入图片描述

class Person{
    public String name="t";
    public int age = 20;

}  
public class Test{
    public static void main(String[] args)
    {
        //final修饰属性 值不能被改变
        //即指向Person对象的地址不能改,但是里面的内容却可以改
      final  Person person = new Person();
      person = new Person();
    }
}

在这里插入图片描述

1.3.3 final与static final的区别

class Person{
    public final int a = 10;     
    public static final int B = 10;
}  

final变量–常量(值不能改变、每个对象都有自己的final变量、在对象产生时初始化)
static final - 全局常量(所有对象共享此变量,并且在类加载时初始化、效率较高,通过类名调用)
可以用静态块初始化:

class Person{
    public static final int B ;
    static{
        B=1;
    }
}  

全局常量命名规范:多个单词全大写,单词间用_分开

2 数据类型转换

  当使用+、-、*、/运算操作时,遵循如下规则:
  只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型。
  如果两个操作数中有一个是float类型,另一个将会被转换成float类型,并且结果也是float类型。
  如果两个操作数有一个是long类型,另一个将会被转换成long类型,并且结果也是long类型。
  否则(操作数为:byte、short、int、char),两个数都会被转换成int型,并且结果也是int型,但是final修饰的类型不会发生变化
范例:

public class Test2{
    public static void main(String[] args)
    {
        byte b1=1,b2=2,b3,b6,b8;
        final byte b4=4,b5=6,b7=9;
        b3=(b1+b2); /*语句1*/
        b6=b4+b5; /*语句2*/
        b8=(b1+b4); /*语句3*/
        b7=(b2+b5); /*语句4*/
    }
}

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值