• 类和对象系列教材 (六)- Java中的传参祥解


    变量有两种类型 基本类型 和类类型 

    参数也是变量,所以传参分为 
    基本类型传参 
    类类型传参

    步骤1:基本类型传参
    步骤2:引用与=
    步骤3:类类型传参
    步骤4:练习-传参
    步骤5:答案-传参

    步骤 1 : 基本类型传参

    基本类型传参 
    在方法内,无法修改方法外的基本类型参数

    public class Hero {

            

        String name; //姓名

            

        float hp; //血量

            

        float armor; //护甲

            

        int moveSpeed; //移动速度

         

        public Hero(){

             

        }

         

        //回血

        public void huixue(int xp){

            hp = hp + xp;

            //回血完毕后,血瓶=0

            xp=0;

        }

          

        public Hero(String name,float hp){

            this.name = name;

            this.hp = hp;

        }

        public static void main(String[] args) {

            Hero teemo =  new Hero("提莫",383);

            //血瓶,其值是100

            int xueping = 100;

             

            //提莫通过这个血瓶回血

             

            teemo.huixue(xueping);

             

            System.out.println(xueping);

             

        }

          

    }

    步骤 2 : 引用与=

    如果一个变量是基本类型
    比如 int hp = 50;
    我们就直接管hp叫变量
    =表示赋值的意思
    如果一个变量是类类型
    比如 Hero h = new Hero();
    我们就管h叫做引用
    =不再是赋值的意思
    =表示指向的意思
    比如 Hero h = new Hero();
    这句话的意思是
    引用h,指向一个Hero对象

    步骤 3 : 类类型传参

    类类型又叫引用 
    第24行的引用 teemo与 第17行的引用hero是不同的引用 
    通过调用garen.attack(teemo, 100); 使得这两个引用都指向了同一个对象 
    所以在第18行hero.hp = hero.hp - damage; 就使得该对象的hp值,发生了变化 
    因此第25行,打印该对象的Hp值就是变化后的值

    类类型传参

    public class Hero {

        String name; // 姓名

        float hp; // 血量

        float armor; // 护甲

        int moveSpeed; // 移动速度

        public Hero(String name, float hp) {

            this.name = name;

            this.hp = hp;

        }

        // 攻击一个英雄,并让他掉damage点血

        public void attack(Hero hero, int damage) {

            hero.hp = hero.hp - damage;

        }

        public static void main(String[] args) {

            Hero teemo = new Hero("提莫"383);

            Hero garen = new Hero("盖伦"616);

            garen.attack(teemo, 100);

            System.out.println(teemo.hp);

        }

    }


    更多内容,点击了解: https://how2j.cn/k/class-object/class-object-parameter/293.html

  • 相关阅读:
    [CQOI2015]选数
    [AHOI2009]中国象棋
    [ZJOI2012]灾难
    [NOI2018]屠龙勇士
    [APIO2016]划艇
    [ZJOI2011]礼物
    cent 7 识别exfat
    C语言风格的 for 循环(SHELL的循环写法 已验证20200517)
    系统安装时间
    单用户模式修改root密码
  • 原文地址:https://www.cnblogs.com/Lanht/p/12615571.html
Copyright © 2020-2023  润新知