43 lines
1.7 KiB
Java
43 lines
1.7 KiB
Java
package com.inmind.final01;
|
||
|
||
import java.util.Arrays;
|
||
|
||
/*
|
||
final关键字用于修饰局部变量
|
||
局部变量:在方法中定义的变量
|
||
1.基本数据类型:保存的值真正的值,表示该值赋值之后不能被修改的
|
||
2.引用数据类型: 保存的值是地址值。引用数据类型地址不变,所指向的内容可以改变
|
||
*/
|
||
public class Demo02 {
|
||
public static void main(String[] args) {
|
||
//基本数据类型被final修饰
|
||
final int i = 10;//常量
|
||
System.out.println(i);
|
||
final int j;//先定义后赋值
|
||
j = 20;
|
||
System.out.println(j);
|
||
System.out.println("---------------------------");
|
||
//引用数据类型被final修饰(数组、类、接口)
|
||
final int[] arr = {1, 2, 3};//arr中保存的是地址,如果添加了final,那就表示arr不能改变,也就是地址不能改变
|
||
//arr = new int[]{4, 5, 6};//这里改变了arr中的地址,不允许的
|
||
System.out.println(Arrays.toString(arr));
|
||
|
||
//只要地址不变,地址对应的堆中空间的值是可以改变的
|
||
arr[0] = 4;
|
||
arr[1] = 5;
|
||
arr[2] = 6;
|
||
System.out.println(Arrays.toString(arr));
|
||
|
||
//创建一个类的对象
|
||
final Student s = new Student("张三", 20);//s是一个对象名,s是一个引用数据类型,保存的是地址
|
||
System.out.println(s);
|
||
System.out.println(s.getName());
|
||
|
||
//s = new Student("李四", 22);//这里改变了s中的地址,不允许的
|
||
s.setName("李四");//只要地址不变,地址对应的堆中空间的值是可以改变的
|
||
System.out.println(s);
|
||
System.out.println(s.getName());
|
||
}
|
||
|
||
}
|