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 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 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

你可能感兴趣的:(Android开发基础----Java基础(5))