内容
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;
}
}
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);//使用系統打亂方法
}
}
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();
}
}