5.21总结

成员变量和局部变量的区别:

成员变量:类中方法外的变量;

局部变量:方法中的变量;

区别成员变量局部变量
类中位置不同类中,方法外方法内,方法申明上
初始化值不同有默认初始化值没有,使用之前需要完成赋值
内存位置不同堆内存栈内存
生命周期不同随着对象的创建而存在,随着对象的消失而消失随着方法的调用而存在,随着方法的运行结束而消失
作用域整个类中有效当前方法中有效

练习1:文字版格斗游戏

package test;

import java.util.Random;

public class test1 {
    //文字版格斗游戏
    private String name;
    private int blood;

    public test1() {
    }

    public test1(String name, int blood) {
        this.name = name;
        this.blood = blood;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return blood
     */
    public int getBlood() {
        return blood;
    }

    /**
     * 设置
     * @param blood
     */
    public void setBlood(int blood) {
        this.blood = blood;
    }

    public String toString() {
        return "test1{name = " + name + ", blood = " + blood + "}";
    }
    //定义一个方法用于攻击别人
    //方法的调用者去攻击参数
    public void attack(test1 test1){
        Random r=new Random();
        int hurt=r.nextInt(20)+1;
        //剩余血量
        int remindBlood=test1.getBlood() -hurt;
        //验证剩余血量;
        remindBlood =remindBlood <0?0:remindBlood ;
        test1.setBlood(remindBlood );
        System.out.println(this.getName() +"举起拳头,打了"+test1.getName() +"一下,造成了"+hurt+"点伤害,鸠摩智还剩下了"+remindBlood +"点血");

    }
}
package test;

public class gametest {
    public static void main(String[] args) {
        //创建第一个角色
        test1 r1=new test1("乔峰",100);
        //创建第二个角色
        test1 r2=new test1("鸠摩智",100);
        //开始格斗   回合制游戏
        while(true){
            r1.attack(r2);
            if(r2.getBlood()==0)
            {
                System.out.println(r1.getName()+"KO了"+r2.getName() );
                break;
            }
            //r2开始攻击r1
            r2.attack(r1);
            if(r1.getBlood() ==0){
                System.out.println(r2.getName() +"KO了"+r1.getName() );
                break;
            }
        }
    }
}

运行结果:

乔峰举起拳头,打了鸠摩智一下,造成了19点伤害,鸠摩智还剩下了81点血
鸠摩智举起拳头,打了乔峰一下,造成了15点伤害,鸠摩智还剩下了85点血
乔峰举起拳头,打了鸠摩智一下,造成了11点伤害,鸠摩智还剩下了70点血
鸠摩智举起拳头,打了乔峰一下,造成了13点伤害,鸠摩智还剩下了72点血
乔峰举起拳头,打了鸠摩智一下,造成了10点伤害,鸠摩智还剩下了60点血
鸠摩智举起拳头,打了乔峰一下,造成了3点伤害,鸠摩智还剩下了69点血
乔峰举起拳头,打了鸠摩智一下,造成了9点伤害,鸠摩智还剩下了51点血
鸠摩智举起拳头,打了乔峰一下,造成了18点伤害,鸠摩智还剩下了51点血
乔峰举起拳头,打了鸠摩智一下,造成了20点伤害,鸠摩智还剩下了31点血
鸠摩智举起拳头,打了乔峰一下,造成了13点伤害,鸠摩智还剩下了38点血
乔峰举起拳头,打了鸠摩智一下,造成了19点伤害,鸠摩智还剩下了12点血
鸠摩智举起拳头,打了乔峰一下,造成了19点伤害,鸠摩智还剩下了19点血
乔峰举起拳头,打了鸠摩智一下,造成了7点伤害,鸠摩智还剩下了5点血
鸠摩智举起拳头,打了乔峰一下,造成了4点伤害,鸠摩智还剩下了15点血
乔峰举起拳头,打了鸠摩智一下,造成了17点伤害,鸠摩智还剩下了0点血
乔峰KO了鸠摩智

对象数组练习:

定义数组存储3个商品对象。
商品的属性:商品的id, 名字,价格,库存。
创建三个商品对象,并把商品对象存入到数组当中。

代码如下:

package test;

public class Goods {
    private String id;
    private String name;
    private double price;
    private int count;

    public Goods() {
    }

    public Goods(String id, String name, double price, int count) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.count = count;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }
}

 

package test;

public class GoodsTest {
    public static void main(String[] args) {
        //1.创建一个数组
        Goods[] arr=new Goods[3];
        //2.创建三个商品对象
        Goods g1=new Goods("001","华为P40",5999.0,100) ;
        Goods g2=new Goods("002","保温杯",227.0,50) ;
        Goods g3=new Goods("003","枸杞",12.7,70) ;
        //3.将商品添加到数组中
        arr[0]=g1;
        arr[1]=g2;
        arr[2]=g3;
        //4.遍历
        for(int i=0;i< arr.length ;i++)
        {
            Goods goods =arr[i];
            System.out.println(goods.getId()+","+goods.getName()+","+goods.getPrice() +","+goods.getCount() );
        }
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值