Android应用开发-----一副扑克

一.Poker类
二.Constants类
三.PokerManager类

一.Poker类
在定义一个类时,一般会将它的属性保护起来,要想修改和查看类中的属性,则需要对外提供一些方法。Poker类中会用到setter、getter、toString几个方法。
1.setter用来修改Poker类中的属性,getter用来获取Poker类中的属性。在IDEA中(换了个开发工具,界面和AndroidStudio几乎相同),Alt+Insert键就会弹出Generate对话框(若未出现,可在设置中搜索Generate,查看快捷方式),选择Getter and Setter,然后选择可提供操作的属性。IDE自动生成如下几段代码:

image.png

image.png

image.png

也可用Generate添加Poker类的构造函数


image.png

为了方便显示整张牌,用Generate添加一个toString方法,并重写toString方法。
    @Override
    public String toString() {
        return dot+pic;
    }

Poker类的全部代码:

public class Poker {
    private String dot;
    private String pic;

    public Poker(String dot, String pic) {
        this.dot = dot;
        this.pic = pic;
    }

    public String getDot() {
        return dot;
    }

    public void setDot(String dot) {
        this.dot = dot;
    }

    public String getPic() {
        return pic;
    }

    public void setPic(String pic) {
        this.pic = pic;
    }


    @Override
    public String toString() {
        return dot+pic;
    }
}

二.Constants类

把一些经常用到的常量专门用一个文件类来管理

public class Constants {
    public static final String[] dots = new String[]{
            "2","3","4","5",
            "6","7","8","9",
            "10","J","Q","K",
            "A"
    };
    
    public static String[] pics = new String[]{
            "♠","♥","♣","♦"
    };
}

这里final是"不可更改"的意思,即用它来修饰一些不能被随意更改的常量。而用static修饰方便后面计算这两个数组的长度。

三.PokerManager类

再创建一个类PokerManager,里面管理关于生成一副牌,洗牌,显示牌的方法

生成一副牌generateOnePackOfCards()

洗牌shuffle()

显示牌show()

public class PokersManager {
    private ArrayList pokers;

    public PokersManager(){
        pokers = new ArrayList<>();
    }

    public void generateOnePackOfCards() {
        for (int i = 0; i < Constants.POKER_DOTS.length; i++) {
            String dot = Constants.POKER_DOTS[i];
            for (int j = 0; j < Constants.POKER_PICS.length; j++) {
                String pic = Constants.POKER_PICS[j];
                Poker poker = new Poker(dot, pic);
                pokers.add(poker);
            }
        }
    }

    public void show(){
        int index = 0;
        for(Poker poker:pokers){
            System.out.print(poker + "  ");
            if((index+1) % 8 == 0){
                System.out.println();
            }
            index++;
        }

    }

    public void shuffle(){
        Collections.shuffle(pokers);
    }

}

主代码:

    public static void main(String[] args) {
        PokersManager manager = new PokersManager();
        manager.generateOnePackOfCards();
        manager.shuffle();
        manager.show();
    }
}

效果:

image.png

你可能感兴趣的:(Android应用开发-----一副扑克)