
正文
Java自学-类和对象 传参
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
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); 输出多少? 怎么理解? }}






