内容

1.this
2.setter和getter
3.toString
4.final
5.扑克牌项目

一.this

详细请看之前的一篇文章:​​https://www.jianshu.com/p/fd56fc887de0​

二.setter和getter(前面也学过)

1.引

如人名,谁都可以喊你,就是得到你的名字,也就是得到某个值,就是getter方法,你自己也可以改一下名,也就是修改某个值,就是setter方法。

2.使用技巧

AS里面Ctrl和回车是快捷键,可以调用很多东西,比如构造方法,在这里
AS里面用Ctrl+回车可以调用setget方法
②建议将setget方法写在最后面,目的是为了使代码更容易理解。

三.toString

详情请看之前的一篇文章:​​https://www.jianshu.com/p/8e404641b56c​

简介

当使用print输出一个对象时,就会去这个对象内部查找toString方法,如果没有实现,那么就会从父类Object里面去查找toString的实现。Object里面的toString方法默认返回 类名@hasCode,这个东西看不太懂,所以我们一般要重写toString方法,重写的目的是为了在调试的时候快速获取这个对象的信息

四.final

详细请看之前的一篇文章:​​https://www.jianshu.com/p/8ea1a41a543b​​ 这里再强调一个事情,就是通常一个常量我们全部用大写字母表示

五.扑克牌项目

1.项目介绍

生成一副牌,并打乱顺序

2.项目结构

一共四个类。分别为Constants、Myclass、Poker、PokerManager

3.具体代码

constants

package Poker;

//放一些固定的东西
public class Constants {

//点数
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[] {"♥","♠","♣","♦"};

}

Poker

package Poker;

//管理一张牌的信息
class Poker{

private String dot;//保存点数
private String pic;//保存花色

//提供构造方法
public Poker(String dot,String pic) {
this.dot = dot;
this.pic = pic;
}

//重写toString
public String toString() {
return dot+pic;
}

//setter和getter
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;
}


}

PokerManager

package Poker;

import java.util.*;

//管理一副牌的所有操作(生成牌,洗牌,显示牌)
public class PokerManager {

//创建保存一副牌的数组
private ArrayList<Poker> pokers;

//使用构造方法,产生所有的牌
public PokerManager() {
//初始化数组
pokers = new ArrayList<>();//动态分配
}

//生成一副牌
public void generateOnePackOfCard() {

for(int i = 0;i < Constants.POKER_DOTS.length;i++) {

//取出i对应的点数
String dot = Constants.POKER_DOTS[i];

//为这个点数创建四种花色
for(int j = 0;j < Constants.POKER_PICS.length;j++) {

//取出j对应的花色
String pic = Constants.POKER_PICS[j];

//创建一张牌
Poker poker = new Poker(dot,pic);

//保存这张牌
int index = i*4 + j;
pokers.add(poker);
}
}
}

//显示一副牌
public void show() {
int index = 0;
for(Poker poker:pokers) {

System.out.print(poker);//注意这里是poker

if((index+1) % 8 == 0) {
System.out.println("");
}

index++;
}
}

//洗牌
public void shuffle() {
Collections.shuffle(pokers);//使用系统打乱方法
}
}

MyClass

package Poker;

public class MyClass {

public static void main(String[] args) {
//以下注释的代码体现了面向过程思想
/*
//用一个数组保存所有的点数
String[] dots = new String[] {
"2","3","4","5","6","7",
"8","9","10","J","Q","K","A"
};

//用一个数组保存所有的花色
String[] pics = new String[] {"♥","♠","♣","♦"};

//用数组保存所有的扑克牌
Poker[] pokers = new Poker[52];

//生成每一张牌,并保存到数组中
int index = 0;
for(String dot:dots) {
for(String pic:pics) {
//创建一张扑克牌
Poker poker = new Poker();
poker.dot = dot;
poker.pic = pic;
pokers[index] = poker;
index++;
}
}

//输出牌
for(Poker poker:pokers) {
System.out.print(poker.dot+poker.pic+" ");
}
*/


//1.创建管理器
PokerManager manager = new PokerManager();

//2.生成一副牌
manager.generateOnePackOfCard();

//3.打乱一副牌
manager.shuffle();

//4.显示一副牌
manager.show();



}
}

总结

今天还是补充了一些其他的知识点,特别是扑克牌项目,让我对一个程序的概念理解更加深刻了。同时对前面的部分知识也进行了复习。