Java自学-类和对象 传参
程序员文章站
2022-06-24 08:28:46
Java中的传参 变量有两种类型 基本类型 和类类型 参数也是变量,所以传参分为 基本类型传参 类类型传参 步骤 1 : 基本类型传参 基本类型传参 在方法内,无法修改方法外的基本类型参数 public class Hero { String name; //姓名 float hp; //血量 fl ......
java中的传参
变量有两种类型 基本类型 和类类型
参数也是变量,所以传参分为
基本类型传参
类类型传参
步骤 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); } }
练习:
(在方法中,使参数引用指向一个新的对象
外面的引用是指向原来的对象?还是新的对象?)
public class hero { string name; //姓名 float hp; //血量 float armor; //护甲 int movespeed; //移动速度 public hero(){ } public hero(string name,float hp){ this.name = name; this.hp = hp; } //复活 public void revive(hero h){ h = new hero("提莫",383); } public static void main(string[] args) { hero teemo = new hero("提莫",383); //受到400伤害,挂了 teemo.hp = teemo.hp - 400; teemo.revive(teemo); //问题: system.out.println(teemo.hp); 输出多少? 怎么理解? } }