• final修饰变量


     final修饰基本类型变量

    当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本类型变量不能被改变

     final修饰引用类型变量

    当使用final修饰引用类型变量时,它保存的仅仅是一个引用,final只能保证这个引用类型变量所引用的地址不会改变,即一直引用同一个对象,但这个对象完全可以改变

    package com.j1803.finalTest;
    import java.util.Arrays;
    public class FinalReferenceTest {
     public static void main(String[] args) {
      //final修饰数组变量,iArr是一个引用变量
      final int [] iArr={5,6,12,9};
      System.out.println(Arrays.toString(iArr));
      //对数组元素进行排序,合法
      Arrays.sort(iArr);
      System.out.println(Arrays.toString(iArr));
            //对数组iArr重新赋值,合法
      iArr[2]=-100;
      //下面语句对iArr重新赋值,非法
      //iArr=null;
           //final修饰一个Person变量,p是一个引用变量
      final Person p=new Person(22);
      //改变Person对象p的实例变量,合法
      p.setAge(45);
      System.out.println(p.getAge());
      //非法
      //p=null;
     }
    }
    class Person{
     private int age;
     public int getAge() {
      return age;
     }
     public void setAge(int age) {
      this.age = age;
     }
     public Person(int age) {
      super();
      this.age = age;
     }
     
    }
  • 相关阅读:
    三.装饰器函数
    二.函数进阶
    生成器
    一个列表实现__iter__和__next__方法的例子
    可迭代对象和迭代器
    asyncio模块实现线程的嵌套和穿插
    线程的阻塞
    利用collections下的counter实现对列表重复元素的查重
    queue的一些用法
    利用python deque的extend特性实现列表元素查重
  • 原文地址:https://www.cnblogs.com/cn-chy-com/p/10820751.html
Copyright © 2020-2023  润新知