类和对象系列教材 (六)- 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

posted @ 2020-03-09 10:17  Lan_ht2  阅读(112)  评论(0编辑  收藏  举报