变量有两种类型 基本类型 和类类型
参数也是变量,所以传参分为
基本类型传参
类类型传参
步骤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