diff --git a/day11/src/com/inmind/final01/Demo02.java b/day11/src/com/inmind/final01/Demo02.java new file mode 100644 index 0000000..6dfbf48 --- /dev/null +++ b/day11/src/com/inmind/final01/Demo02.java @@ -0,0 +1,42 @@ +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()); + } + +} diff --git a/day11/src/com/inmind/final01/Student.java b/day11/src/com/inmind/final01/Student.java new file mode 100644 index 0000000..420d12d --- /dev/null +++ b/day11/src/com/inmind/final01/Student.java @@ -0,0 +1,27 @@ +package com.inmind.final01; + +public class Student { + String name; + int age; + + public Student(String name, int age) { + this.name = name; + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } +}