Java实战开发篇-4 类的综合运用

上一篇实现了简单的扑克牌创建,本篇将完成最终目的,实现洗牌功能

首先理一下思路

产生一张牌——产生一副牌——洗牌——发牌——实现整个功能
这些功能则需要在类里面实现,所以大致可以分为3个类
一个类用于管理一张牌的属性,点数和花色
一个类用于保存一副牌,实现牌的功能
一个类用于运行整个项目(主类)

创建一个类Poker,管理一张牌的属性

package poker;
//管理一张牌的信息,点数和花色
public class Poker {
    private String dot;//用来记录一张牌的点数
    private String pic;//用来记录一张牌的花色
    static  final String [] DOTS = new String[]{"♠","♥","♣","♦"};
    static  final String [] PICS = new String[]{"3","4","5","6","7"
            ,"8","9","10","J",
            "Q","K","A","2"};
/*
这里涉及到static 和 final
1.static是静态修饰符,在类外部调用的时候可以不用建立相应的对象,直接通过“类名.”来访问
2.final是缺省修饰符,用缺省修饰符修饰的是常量,名字需要大写。由于是常量,不用再通过构造函数来初始化。由于花色和点数是固定存在且不会被修改的,我们可以设置为final和private
*/
    public Poker(String dot, String pic) {
        this.dot = dot;
        this.pic = pic;
    }//含有两个参数的构造方法,this代表当前类的对象,创建对象之后系统会自动调用相应类的构造函数来初始化成员变量

    @Override
    public String toString() {
        return pic+dot;
    }
/*
toString方法,当使用print输出一个对象时,就会自动调用toString方法。如果没有实现,会自动调用父类的toString。当需要打印出对象的值的时候,需要重写toString方法,否则会出现乱码。
快捷键ctrl+enter,找到toString(自行设置快捷键)
该方法也可以手动写
*/
    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;
    }
}
/*
以上为get/set方法,目的是间接访问私有对象的值
ctrl+enter为快捷键
*/

创建一个类PokerManager,实现洗牌、发牌功能

package poker;
import java.util.ArrayList;
import java.util.Collections;
//管理牌的所有行为
public class PokerManager {
    private ArrayList pokers;//定义ArrayList数组来保存一副牌
    public PokerManager() {
        pokers = new ArrayList<>();
    }//构造方法
    public void produce(){
    for(int i=0;i

创建主类运行该项目

package poker;
public class MyClass {
    public static void main(String[] args){

        PokerManager manager = new PokerManager();

        manager.produce();//生成一副牌;

        manager.shuffle();//洗牌(打乱数组顺序)

        manager.show();   //发牌

    }
}
//可以看出主类很简单了,只需要通过一个个对象来调用相应方法即可,这也是面向对象语言的一个好处

运行结果


image.png

本节之后,对类与对象有了综合的运用,为之后的项目打下基础

注意事项

java规定,for语句等功能需要写在方法里面(函数),不能单独存在,否则会报Unknown token

你可能感兴趣的:(Java实战开发篇-4 类的综合运用)