Java面向对象编程:实现发牌功能全流程改写
以下是使用面向对象编程方式改写的Java代码: ```java import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; class Card { private String suit; private String rank; public Card(String suit, String rank) { this.suit = suit; this.rank = rank; } public String getSuit() { return suit; } public String getRank() { return rank; } public String toString() { return suit + rank; } } class Deck { private List<Card> cards; public Deck() { initialize(); } private void initialize() { cards = new ArrayList<>(); String[] suits = {"方块", "梅花", "红桃", "黑桃"}; String[] ranks = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; for (String suit : suits) { for (String rank : ranks) { Card card = new Card(suit, rank); cards.add(card); } } } public void shuffle() { Collections.shuffle(cards); } public List<Card> deal(int num) { if (num > cards.size()) { throw new IllegalArgumentException("发牌数超过牌堆大小"); } List<Card> dealtCards = new ArrayList<>(); for (int i = ; i < num; i++) { dealtCards.add(cards.remove(0)); } return dealtCards; } public void display() { for (Card card : cards) { System.out.println(card); } } } public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Deck deck = new Deck(); while (true) { System.out.println("请输入对应的数字选择相应的业务:"); System.out.println("0.初始化牌"); System.out.println("1.显示牌码"); System.out.println("2.洗牌"); System.out.println("3.发牌"); System.out.println("4.退出"); int choice = scanner.nextInt(); switch (choice) { case 0: deck = new Deck(); System.out.println("牌初始化完成"); break; case 1: deck.display(); break; case 2: deck.shuffle(); System.out.println("洗牌完成"); break; case 3: System.out.println("请输入发牌数:"); int num = scanner.nextInt(); try { List<Card> dealtCards = deck.deal(num); for (Card card : dealtCards) { System.out.print(card + " "); } System.out.println(); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } break; case 4: System.out.println("再见~ ~ ~"); return; default: System.out.println("输入错误,请重新输入"); break; } } } } ``` 运行以上代码,可以实现发牌的功能,并且使用面向对象编程方式进行了改写。 ######[AI写代码神器 | 3211点数解答 | 2024-03-24 21:27:14]
- Python 实现简易密码设置系统:多种功能交互与安全要点揭秘(字节豆包 | 286点数解答 | 2025-03-28 10:43:21)355
- C语言实现多功能密码设置系统:含代码及安全注意要点(字节豆包 | 414点数解答 | 2025-03-28 10:43:55)343
- C 语言实现:超简单密码设置系统,含代码与注意要点!(字节豆包 | 519点数解答 | 2025-03-28 12:42:02)384
- C语言实现密码管理系统:含功能代码与安全注意事项(字节豆包 | 409点数解答 | 2025-04-05 18:09:56)333
- C语言实现多功能密码系统:初始化、确认、设置、显示、重置与退出(字节豆包 | 454点数解答 | 2025-04-05 18:48:42)332
- C语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 413点数解答 | 2025-04-06 15:37:16)279
- C 语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 403点数解答 | 2025-04-06 15:37:54)292
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)404
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)305
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1134
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- 工程师必知!Monkey 流程助力软件稳定性与可靠性提升(百度文心 | 388点数解答 | 2023-11-09 18:28:07)282