使用面向对象的方法实现两张扑克牌的交换

package Day08;

class Poker{
    //花色
    public String color;
    //大小
    public char nums;

    public Poker(){}

    public Poker(String color,char nums){
        this.color = color;
        this.nums = nums;
    }

}

class Hand{
    Poker poker = new Poker();
    String type;

    public Hand(){}

    public Hand(Poker poker,String type){
        this.poker = poker;
        this.type = type;
    }

    //设置一个拿牌的方法
    public Poker setPoker(Poker poker){
        this.poker = poker;
        return this.poker;
    }

}

class People{
    Hand leftHand;
    Hand rightHand;

    public People(){}

    public People(Hand leftHand,Hand rightHand){
        this.leftHand = leftHand;
        this.rightHand = rightHand;
    }

    //展示手中的牌
    public void showInfPoker(){
        System.out.println(leftHand.type+"手拿的牌的是"+leftHand.poker.color+leftHand.poker.nums);
        System.out.println(rightHand.type+"手拿的牌的是"+rightHand.poker.color+rightHand.poker.nums);
    }

    //交换手中的牌
    public void switchPoker(){
        //提取手中的牌
        Poker leftPoker = leftHand.poker;
        Poker rightPoker = rightHand.poker;

        leftHand.poker = leftHand.setPoker(rightPoker);
        rightHand.poker = rightHand.setPoker(leftPoker);
    }
}

public class SwitchPoker {

    public static void main(String[] args) {
        Poker pokerK = new Poker("红桃",'K');
        Poker pokerA = new Poker("黑桃",'A');
        Hand leftHand = new Hand(pokerA,"左");
        Hand rightHand = new Hand(pokerK,"右");
        People xiaoming = new People(leftHand,rightHand);
        xiaoming.showInfPoker();


        xiaoming.switchPoker();
        xiaoming.showInfPoker();

    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值