类和对象系列教材 (六)- Java中的传参详解
变量有两种类型 基本类型 和类类型
参数也是变量,所以传参分为
基本类型传参
类类型传参
步骤1:基本类型传参
步骤2:引用与=
步骤3:类类型传参
步骤4:练习-传参
步骤5:答案-传参
步骤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对象
比如 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值就是变化后的值
第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); } } |