100天代码提升计划-第23天
final修饰局部变量
含义:final修饰局部变量那么这个变量的值将永远不会改变
对于基本类型来说,final不可变的是变量的数值不可变

package FinalDemo; public class FinalLocal { public static void main(String[] args) { int num=10; System.out.println(num); num=20; System.out.println(num); System.out.println("=========="); final int num1=30; System.out.println(num1); //num1=40; 错误的写法 } }
对于引用类型来说,final不可变的是变量的地址值不可变
package FinalDemo; public class FinalMethodZi { public static void main(String[] args) { Student student=new Student("张三"); System.out.println(student.getName());//张三 //输出地址值 System.out.println(student);//张三的地址 student=new Student("李四"); System.out.println(student.getName());//李四 //输出地址值 System.out.println(student);//李四的地址值 System.out.println("-----------"); final Student student1=new Student("啦啦啦"); System.out.println(student1.getName());//啦啦啦 //student1=new Student("haha");错误写法 student1.setName("哈哈哈"); System.out.println(student1.getName());//哈哈哈 } }
package FinalDemo; public class Student { private String name; public Student() { } public Student(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
二、final修饰成员变量
final修饰成员变量,其中值依旧不可改变
final修饰成员变量与局部变量的区别
1.成员变量具有默认值,引用final以后必须手动赋值
2.对用引用final关键字成员方法复制有两种:1.直接赋值2.通过构造方法进行赋值(两种方法只能取一种)
1.直接赋值法
代码
package FinalDemo; public class FinalMemberDirect { private final String name="张三"; }
2.通过构造方法进行赋值
代码
package FinalDemo; public class FinalMemberStructure { private final String name; public FinalMemberStructure() { name="张三"; } public FinalMemberStructure(String name) { this.name = name; } public String getName() { return name; } //public void setName(String name) { // this.name = name; //} }

浙公网安备 33010602011771号