zoukankan      html  css  js  c++  java
  • 接口与继承系列教材 (八)- Java的修饰符final详解

    final修饰类,方法,基本类型变量,引用的时候分别有不同的意思。

    步骤1:final修饰类
    步骤2:final修饰方法
    步骤3:final修饰基本类型变量
    步骤4:final修饰引用
    步骤5:常量
    步骤6:练习-final
    步骤7:答案-final

    示例 1 : final修饰类

    当Hero被修饰成final的时候,表示Hero不能够被继承
    其子类会出现编译错误

    final修饰类

    package charactor;

    public final class Hero extends Object {

            

        String name; //姓名

            

        float hp; //血量

            

    }

    示例 2 : final修饰方法

    Hero的useItem方法被修饰成final,那么该方法在ADHero中,不能够被重写

    final修饰方法

    package charactor;

    import property.Item;

    public class Hero extends Object {

            

        String name; //姓名

            

        float hp; //血量

            

        float armor; //护甲

            

        int moveSpeed; //移动速度

         

        public final void useItem(Item i){

            System.out.println("hero use item");

            i.effect();

        }    

         

        public Hero(){

            System.out.println("Hero的无参的构造方法 ");

        }

         

        public Hero(String name){

            System.out.println("Hero的有一个参数的构造方法 ");

            this.name = name;

        }

         

        public static void main(String[] args) {

            new Hero();

        }

          

    }

    示例 3 : final修饰基本类型变量

    final修饰基本类型变量,表示该变量只有一次赋值机会 
    16行进行了赋值,17行就不可以再进行赋值了

    package charactor;

    public class Hero extends Object {

            

        String name; //姓名

            

        float hp; //血量

            

        float armor; //护甲

            

        int moveSpeed; //移动速度

         

        public static void main(String[] args) {

            final int hp;

            hp = 5;

            hp = 6;

             

        }

    }

    示例 4 : final修饰引用

    final修饰引用
    h引用被修饰成final,表示该引用只有1次指向对象的机会
    所以17行会出现编译错误
    但是,依然通过h引用修改对象的属性值hp,因为hp并没有final修饰

    package charactor;

    public class Hero extends Object {

            

        String name; //姓名

            

        float hp; //血量

            

        float armor; //护甲

            

        int moveSpeed; //移动速度

         

        public static void main(String[] args) {

            final Hero h;

            h  =new Hero();

            h  =new Hero();

             

            h.hp = 5;

             

        }

          

    }

    示例 5 : 常量

    常量指的是可以公开,直接访问,不会变化的值 
    比如 itemTotalNumber 物品栏的数量是6个

    package charactor;

    public class Hero extends Object {

         

        public static final int itemTotalNumber = 6;//物品栏的数量

            

        String name; //姓名

            

        float hp; //血量

            

        float armor; //护甲

            

        int moveSpeed; //移动速度

         

        public static void main(String[] args) {

            final Hero h;

            h  =new Hero();

             

            h.hp = 5;

             

        }

          

    }


    更多内容,点击了解: https://how2j.cn/k/interface-inheritance/interface-inheritance-final/313.html

  • 相关阅读:
    升级windows 11小工具
    windows 10更新升级方法
    您需要了解的有关 Oracle 数据库修补的所有信息
    Step by Step Apply Rolling PSU Patch In Oracle Database 12c RAC Environment
    Upgrade Oracle Database Manually from 12.2.0.1 to 19c
    如何应用版本更新 12.2.0.1.210420(补丁 32507738 – 2021 年 4 月 RU)
    xtrabackup 安装、备份和恢复
    Centos_Lvm expand capacity without restarting CentOS
    Centos_Lvm_Create pv vg lv and mount
    通过全备+relaylog同步恢复被drop的库或表
  • 原文地址:https://www.cnblogs.com/Lanht/p/12615538.html
Copyright © 2011-2022 走看看