formdata传参java用对象怎么接受_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值就是变化后的值

61bc366f1dd366742e06ac869d2893d3.png
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); 输出多少? 怎么理解?

    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值