[Java]final关键字的使用 基本类型值不变 引用类型引用不变
完整源码
public class TestVector{
/* 用 例 代 码 */
public static void main(String args[]){
double[] a = {3.0,4.0};
Vector vector = new Vector(a);
a[0] = 0.0;
System.out.println(vector);
double a1 = 3.0;
Vector1 vector1 = new Vector1(a1);
a1 = 0.0;
System.out.println(vector1);
}
}
/* 实 现 代 码 */
class Vector{
private final double[] b;
public Vector(double[] a)
{
b = a;
}
public String toString(){
return "b[0] = "+b[0];
}
}
class Vector1{
private final double b;
public Vector1(double a){
b = a;
}
public String toString(){
return "b = "+b;
}
}
运行结果
/* Command line */
$ javac TestVector.java
$ java TestVector
Compiling TestVector.java.......
-----------OUTPUT-----------
b[0] = 0.0
b = 3.0
代码说明
引用类型引用不变,但是引用的值可以变
Vector
类中的的 [ ]b 指向的 [ ]a的引用,在用例代码中,使用赋值语句a[0]=0.0
可以改变 的是a的值,但是 不会改变 b对a的引用;
基本类型值不变
Vector1类中的变量a、b之间传递的是值,所以改变a的值不会影响b的值;