final关键字

僤鯓⒐⒋嵵緔 提交于 2020-02-17 06:47:30

final关键字可以修饰类,方法,变量

  1. final修饰的变量称为常量
    变量–>成员变量和局部变量
    final修饰成员变量,通常与static一起使用,称为静态常量

    static说明PI的使用需要使用类名. Math.PI
    final说明PI的值在整个程序的运行过程其值不允许改变

    final修饰的局部变量称为常量
    变量–>基本数据类型和引用数据类型
    final修饰的基本数据类型,其值不允许更改
    final修饰的引用数据类型, 其地址不允许更改

public class Test4 {
    public static void main(String[] args) {
         final double PI=3.14;
         //PI=3.15;编译报错
         final  Bird bird=new Bird(2,"红色"); //bird存储的是内存地址\
       //    bird=new Bird(3,"绿色");//修改内存地址编译报错
             bird.setColor("绿色"); //没有修改地址,而修改的是堆中的属性值
         //调用show方法
            show(bird); //方法传参,只传地址,不传修饰符 final
    }
    public static void show( Bird b){ //show方法中Bird b并没有使用final修饰
        b=new Bird(3,"绿色");
    }
}
  1. 修饰方法:
    不允许子类重写,子类可以调用
    Object中的wait()方法就使用了final修饰,所以wait()只允许被Object的子类调用,而不允许重写
  2. 修饰类:不允许有子类的,所以称为“太监类”
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!