Java中的final关键字 博客分类: Java基础 javafinal
程序员文章站
2024-03-16 15:21:46
...
我们都知道Java中final关键字的用法:
- 被fiinal修饰的类不能被继承。
- 被final修饰的方法不能被重写。
- 被final修饰的变量不能被修改。
然而,被final修饰的变量不能被修改,这个怎么理解呢,是变量的值不能被修改,还是引用不能被修改呢,引用的对象可以被修改吗,我们来看代码:
package com.yuwl.jdk; /** * 测试内容:final修饰变量 * @author Yuwl * 2018-3-18 */ public class FinalTest { private final int one = 1; private final Value two = new Value(2); private final int[] array = new int[]{1,2,3,4}; public static void main(String[] args) { FinalTest ft = new FinalTest(); //ft.one = 2; //被final修饰的变量值不能更改,编译报错 Value v3 = new Value(3); //ft.two = v3; //被final修饰的引用不能更改,编译报错 int n = ft.two.setValue(3); //被final修饰的引用不能更改,但引用的对象内容可以修改 int[] array2 = new int[]{1,2,3,4,5}; //array = array2; //被final修饰的数组引用不能更改,编译报错 ft.array[1] = 5; //被final修饰的数组引用不能更改,但引用的数组内容可以修改 } } class Value { private int i; public Value(int i) { this.i = i; } public int setValue(int num) { this.i = num; return this.i; } }
通过以上代码测试,可以总结:被final修饰的变量值,引用不能修改,但引用的对象可以被修改。
上一篇: Go语言数据结构和算法-BinarySearchTree(二叉搜索树)
下一篇: java中时间格式要求大小写严格 博客分类: javaString转date日期格式化 java字符串转日期日期格式化
推荐阅读
-
Java中的final关键字 博客分类: Java基础 javafinal
-
Object类的equals方法和hashCode方法 博客分类: Java基础 javaequalshashCode
-
Java中的static关键字 博客分类: Java基础 javastatic
-
Java中的static关键字 博客分类: Java基础 javastatic
-
java中子类与父类中的静态代码块、非静态代码块和构造函数的加载顺序 博客分类: JAVA基础 静态代码块非静态代码块加载顺序
-
java中子类与父类中的静态代码块、非静态代码块和构造函数的加载顺序 博客分类: JAVA基础 静态代码块非静态代码块加载顺序
-
Java中的正则匹配 博客分类: Java JavaSwingXMLHTML
-
Java中的正则匹配 博客分类: Java JavaSwingXMLHTML
-
java中载入properties文件的方法 博客分类: core java javaproperties载入文件
-
java中载入properties文件的方法 博客分类: core java javaproperties载入文件