zoukankan      html  css  js  c++  java
  • 类和对象系列教材 (六)- 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);
        }
     
    }
  • 相关阅读:
    VTK二维图像的三维显示
    VtkTransform 和 SetPosition的区别
    Qt QList 遍历元素
    Qt QList详解
    QT QList介绍及应用
    Qt 生成随机区间浮点数 generateRand
    Qt qsrand qrand 产生随机数的两只方法
    Qt QStringLiteral
    Qt QMap简单用法
    Qt 遍历QMap
  • 原文地址:https://www.cnblogs.com/Lanht/p/12441267.html
Copyright © 2011-2022 走看看