Android开发基础----Java基础(5)

学习内容

  • setter、getter和toString方法
  • 面向对象实现发牌项目
1.setter、getter和toString方法

(1)setter/getter:用来对类中被private修饰的属性访问,其中set是赋值,get是取值
(2)toString:当使用println输出一个对象时,就会去这个对象内部查找toString的方法,如果没有实现,那么就会从父类Object里面去查找toString的实现,
而Object里面默认使用 类名+@+hasCode。

2.面向对象实现发牌项目

(1)分析功能、抽取类:PokerManage和Poker
(2)开始实现功能
a.创建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 String getPic() {
        return pic;
    }
    public void setDot(String dot) {
        this.dot = dot;
    }
    public void setPic(String pic) {
        this.pic = pic;
    }
    //重写toString方法

    @Override
    public String toString() {
        return "Poker{" + "dot=‘"+dot+",pic=’"+pic+"}";
    }
}

b.创建PokerManager类,管理一副牌的所有操作(生成 洗牌 显示)

import java.util.ArrayList;
import java.util.Collections;

public class PokerManager {
    //保存一副牌
    private ArrayList<Poker> pokers;


    //实现构造方法
    public PokerManager(){
        //初始化数组
        pokers = new ArrayList<>();
    }
    //生成一副牌(扑克牌 麻将)
    public void gennerateOnePackOfCards() {
        int index=0;
        for (int i = 0; i < Constants.POKER_DOTS.length; i++) {

            if (i<14) {
                String dot = Constants.POKER_DOTS[i];
                for (int j = 0; j < Constants.POKER_PICS.length; j++) {
                    if(j<4) {
                        String pic = Constants.POKER_PICS[j];
                        Poker poker = new Poker(dot, pic);
                        index = i * 4 + j;
                        if(index<52){
                        pokers.add(poker);}else{break;}
                    }else{
                        break;
                    }
                }
            }else{
                break;
            }
        }





    }
    //显示一副牌
    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);

    }
}

c.将固定的信息单独创建一个类保存

public class Constants {
    //final 修饰成员变量 表示这是一个常量 不能被修改 所以变量名通常用大写字母表示
    public  static final String[] POKER_DOTS = new String[]{"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
    public  static final String[] POKER_PICS = new String[]{"♠", "♥", "♣", "♦"};
}

d.main函数

import java.util.ArrayList;
import java.util.Collections;

public class PokerManager {
    //保存一副牌
    private ArrayList<Poker> pokers;


    //实现构造方法
    public PokerManager(){
        //初始化数组
        pokers = new ArrayList<>();
    }
    //生成一副牌(扑克牌 麻将)
    public void gennerateOnePackOfCards() {
        int index=0;
        for (int i = 0; i < Constants.POKER_DOTS.length; i++) {

            if (i<14) {
                String dot = Constants.POKER_DOTS[i];
                for (int j = 0; j < Constants.POKER_PICS.length; j++) {
                    if(j<4) {
                        String pic = Constants.POKER_PICS[j];
                        Poker poker = new Poker(dot, pic);
                        index = i * 4 + j;
                        if(index<52){
                        pokers.add(poker);}else{break;}
                    }else{
                        break;
                    }
                }
            }else{
                break;
            }
        }





    }
    //显示一副牌
    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);

    }
}

运行结果


运行结果.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容