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;
    //}
}

 

posted @ 2022-03-29 23:11  软测成长者  阅读(36)  评论(0)    收藏  举报