• final关键字


    final关键字

    /**
    * @program: intellij idea
    * @description:final关键字代表最终、不可改变的。
    *
    * 常见用法:
    * 1、可以用来修饰一个类
    * 2、可以用来修饰一个方法
    * 3、可以用来修饰一个局部变量
    * 4、可以用来修饰一个成员变量
    * @author: lixy
    * @create: 2020-04-29 23:48
    **/
    public class Demo05Main {
      public static void main(String[] args) {
          int num1 = 10;
          System.out.println(num1);
          //一旦使用final关键字修饰的局部变量,那么此变量值不可变。
          final int num2 = 20;
          System.out.println(num2);

          //对于基本数据来说,不可变说的是变量当中的数据不可变
          //对于引用类型来说,不可变说的是变量中的地址值不可变
      }

    }
    /**
    * @program: intellij idea
    * @description:final关键字用来修饰一个类时,格式:
    * public final class 类名称{
    *     //...
    * }
    * 含义:当前这个类不能有任何的子类。(太监类)
    * 注意:一个类如果是final修饰的,那么其中所有的成员方法都无法进行覆盖重写。(因为没儿子)
    * @author: lixy
    * @create: 2020-04-30 00:03
    **/
    public final class MyClass {
      public void method(){
          System.out.println("方法执行!");
      }
    }
    /**
    * @program: intellij idea
    * @description:当final关键字用来修饰一个方法时候,这个方法就是最终方法,不可被覆盖重写。
    * 格式:
    * 修饰符 final 返回值类型 方法名称(参数列表){
    *     //方法体
    * }
    * 注意:
    * 对于类、方法来说,abstract和final关键字不能同时使用,因为矛盾。
    * @author: lixy
    * @create: 2020-04-30 00:11
    **/
    public class Fu {
      public final void method(){
          System.out.println("父类方法执行");
      }
    }
    public class Zi extends Fu {
      //错误写法,不能覆盖重写父类当中final修饰的方法。
    //   @Override
    //   public void method() {
    //       System.out.println("子类覆盖重写父类的方法");
    //   }
    }
    /**
    * @program: intellij idea
    * @description:对于成员变量来说,如果使用final关键字修饰,那么这个变量也是不可变的。
    *
    * 1、由于成员变量具有默认值,所以用了final之后必须手动赋值,不会再给默认值了。
    * 2、对于final的成员变量,要么直接使用直接赋值,要么通过构造方法赋值。二选一。
    * 3、必须保证类当中所有重载的构造方法,都最终会对final的成员变量进行赋值。
    * @author: lixy
    * @create: 2020-04-30 11:45
    **/
    public class Person {
      private final String name/* = "张三"*/;

      public Person() {
          name = "里斯";
      }

      public Person(String name) {
          this.name = name;
      }

      public String getName() {
          return name;
      }

      /* public void setName(String name) {
          this.name = name;
      }*/
    }
  • 相关阅读:
    Recommended Books for Algo Trading in 2020
    Market Making is simpler than you think!
    Top Crypto Market Makers of 2020
    Top Crypto Market Makers, Rated and Reviewed
    爬取伯乐在线文章(五)itemloader
    爬取伯乐在线文章(四)将爬取结果保存到MySQL
    爬取伯乐在线文章(三)爬取所有页面的文章
    爬取伯乐在线文章(二)通过xpath提取源文件中需要的内容
    爬取伯乐在线文章(一)
    爬虫去重策略
  • 原文地址:https://www.cnblogs.com/lxy522/p/12807997.html
Copyright © 2020-2023  润新知