Java中的final关键字_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java中的final关键字

Java中的final关键字

 2018/3/19 0:47:10  yuwenlin2008  程序员俱乐部  我要评论(0)
  • 摘要:我们都知道Java中final关键字的用法:被fiinal修饰的类不能被继承。被final修饰的方法不能被重写。被final修饰的变量不能被修改。然而,被final修饰的变量不能被修改,这个怎么理解呢,是变量的值不能被修改,还是引用不能被修改呢,引用的对象可以被修改吗,我们来看代码:packagecom.yuwl.jdk;/***测试内容:final修饰变量*@authorYuwl*2018-3-18*/publicclassFinalTest{privatefinalintone=1
  • 标签:Java 关键字

我们都知道Java中final关键字的用法:

  1. 被fiinal修饰的类不能被继承。
  2. 被final修饰的方法不能被重写。
  3. 被final修饰的变量不能被修改。

? ? ? ? 然而,被final修饰的变量不能被修改,这个怎么理解呢,是变量的值不能被修改,还是引用不能被修改呢,引用的对象可以被修改吗,我们来看代码:

class="java">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修饰的变量值,引用不能修改,但引用的对象可以被修改。

发表评论
用户名: 匿名