static 、final、static final 的区别

Myth丶恋晨 2022-04-12 05:16 407阅读 0赞

目的:解释static 、final、static final 的区别

1、加了 final 修饰符,表示这个是最终结果不可被更改的(你尝试改变它的值,编译器就会报错)

2、加了 static 修饰符,表示这是 独一无二 的,只有这一个。

3、加了 static final 修饰符(static final 位置可以互换),整个程序只有一份并且结果不可以被更改。

用代码说明上面的规律 看下面这个代码

  1. package com.xdx97.Testing;
  2. import java.util.Random;
  3. public class Test2 {
  4. private String name;
  5. private static Random rand = new Random();
  6. private static final Integer AA = rand.nextInt(30);
  7. private static Integer BB = rand.nextInt(30);
  8. private final Integer CC = rand.nextInt(30);
  9. Test2(String name){
  10. this.name = name;
  11. }
  12. public void sout(){
  13. System.out.println(name+"-AA = "+ AA);
  14. System.out.println(name+"-BB = "+BB);
  15. System.out.println(name+"-CC = "+CC);
  16. }
  17. public static void main(String[] args) {
  18. Test2 t = new Test2("t");
  19. Test2 t1 = new Test2("t1");
  20. t.sout();
  21. t1.sout();
  22. }
  23. }

打印的结果

  1. 1、对象t t1打印的 AA BB 永远相等,但是CC 基本不相等(也可能相等,因为随机数可能随机的同一个数)
  2. 2、你可以在方法改变 BB 的值,使其变成你想要的值,但是你无法改变 AA CC 的值因为它们使用了 final 修饰表示最终的值了。
  3. 3、不能因为被 final 修饰就认为在编译的时候知道它的值,比如上面的例子是用 Random 来进行赋值的。
  4. 4、当我们使用了 static final 修饰的时候,表示它在整个程序里面是唯一的,并且不可以被更改。那么我们就可以认为它是一个常量。(常量习惯性的命名是用大写,如果是多个单词中间用下划线隔开)

发表评论

表情:
评论列表 (有 0 条评论,407人围观)

还没有评论,来说两句吧...

相关阅读