package com.inmind.final01; import java.util.Arrays; /* final:被它修饰,不能够被改变 final的4个用法: 1.修饰类 2.修饰方法 3.修饰成员变量 4.修饰局部变量 ------------------------------------- 1: final关键字用于修饰类:该类就不能被继承 final与abstract是冲突,不能一起使用 被final修饰的类,叫“太监类”,"最终类" 2: final关键字用于修饰方法:该方法就不能被子类重写 3: final关键字用于修饰局部变量 局部变量: 1.基本数据类型:保存的值真正的值,表示该值赋值之后不能被修改的 2.引用数据类型: 保存的值是地址值。引用数据类型地址不变,所指向的内容可以改变 4: final关键字用于修饰成员变量 注意:被final修饰成员变量,必须【手动赋值】 */ public class Demo01 { public static void main(String[] args) { final int i = 10;//基本数据类型 //i = 20;//被final修饰的变量不能修改,它已经成为了常量 System.out.println(i); System.out.println("-------------------------"); //引用数据类型 final int[] arr = {1, 2, 3};//arr中保存的是地址 System.out.println(arr); System.out.println(Arrays.toString(arr)); //引用数据类型: 保存的值是地址值。引用数据类型地址不变,所指向的内容可以改变 //修改数组的内容 arr[0] = 10; arr[1] = 20; arr[2] = 30; System.out.println(arr); System.out.println(Arrays.toString(arr)); //对于类呢???也是一样的!!!! final Student s = new Student("张三", 18); System.out.println(s); System.out.println(s.name); System.out.println(s.age); System.out.println("------------修改final修饰的对象的内容-------------"); s.name = "王五"; s.age = 20; System.out.println(s); System.out.println(s.name); System.out.println(s.age); //s = new Student("张三", 18);对final修饰的引用数据类型对象不能重新赋值 } }