• Java——final关键字


    3.3 final关键字

    3.3.1 final的定义

    在Java中声明类、属性和方法时,可使用关键字final来修饰,表示“最终”。

    final标记的类不能被继承。提高安全性,提高程序的可读性。

    String类、System类、StringBuffer类

    final标记的方法不能被子类重写。

    Object类中的getClass()。

    final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次。

    final标记的成员变量不能使用默认初始化,必须在声明的同时或在每个构造方法中或代码块中显式赋值,然后才能使用。final double PI=3.14;

    变量用static final修饰:全局常量。比如:Math 类的PI。

    ④要与finally finalize()区分开。

    3.3.2 final基础语法

    final修饰类

    final class A{

    }

    class B extends A{     //错误,不能被继承。

    }

    中国古代,什么人不能有后代,就可以被final声明,称为太监类

    final修饰方法

    class A{

           public final void print(){

                    System.out.println(“A”);

           }

    }

    class B extends A{    

            public void print(){   //错误,不能被重写。

                      System.out.println(“尚硅谷”);

             }

    }

    final修饰变量——常量

    class  A{

            private final String INFO = “atguigu”;  //声明常量

            public void print(){

                      //INFO = “尚硅谷”;

             }

    }

    常量名要大写,内容不可修改。——如同古代皇帝的圣旨。

     

    final修饰的成员变量:一般和static联用。

    class MyMath{

           //常量.java规范中要求所有的常量“大写”

           //常量:值不可再改变的变量.

           public static final double PI = 3.14;

    }

    ⑤关键字final应用举例:

    public final class Test{

                  public static int totalNumber = 5 ;

                  public final int ID;

                  public Test(){

                         ID = ++totalNumber;  //可在构造方法中给final变量赋值

                  }

                public static void main(String[] args) {

                         Test t = new Test();

                         System.out.println(t.ID);             

                         final int I = 10;

                         final int J;

                         J = 20;

                         J = 30;  //非法

                      }

    }

    ⑥深入final

    final修饰的引用类型,该引用不可再重新指向其他的java对象。但是fianl修饰的引用,该引用指向的对象的属性是可以修改的。

    public class Test02{

           public static void main(String[] args){

                  final Customer c = new Customer("JACK",15);

                  //c是final的,无法重新赋值。

                  //c = new Customer("LUCY",20);//Error

                  c.name = "李四";

                  c.age = 25;

                  System.out.println(c.name);

                  System.out.println(c.age);

           }

    }

    class Customer{

           String name;

           int age;

           Customer(String name,int age){

                  this.name = name;

                  this.age = age;

           }

    }

  • 相关阅读:
    【整理】PHP获取客户端真实IP地址详解
    配置百度编辑器变成纯代码编辑器
    Notepad++安装SVN插件
    【CodeBase】【转】php随机生成汉字
    【CodeBase】PHP打印所有用户自定义常量
    php5.3新垃圾回收机制详解
    php脚本cli 模式运行
    php 内存分配新
    php-fpm epoll封装
    火焰图定位dbproxy问题
  • 原文地址:https://www.cnblogs.com/superjishere/p/11824440.html
Copyright © 2020-2023  润新知