Day04 第二个小程序:斗地主,以及数组的概念

这篇博客探讨了扑克牌游戏斗地主的实现原理,并深入讲解了Java中的数组概念。内容包括数组的静态和动态绑定定义方式,以及数组作为对象的特性。此外,还讨论了Java的面向对象特性,如继承、多态和封装,并对比了面向对象与面向过程的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

扑克牌的基本原理代码

package com.zhongruan.demo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class Dome1 {
    public static void main(String[] args){
        /*
            * 功能:
            * 1.准备一幅牌(54张)
            * 2.洗牌(打乱牌序)
            * 3.发牌(三个人)
            * 4.留三张底牌
            * 5.每个人拿到牌后,对牌进行排序
         */
        //1.准备一幅牌(54张)
        List<String> poker = new ArrayList<>();
        String[] color = {"黑桃", "红桃", "方片", "梅花"};
        String[] nums = {"2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3"};
        for (String c : color){
            for(String num : nums){
                String p = c + num;
                poker.add(p);
            }
        }
        poker.add("大王");
        poker.add("小王");

        //2.洗牌
        Collections.shuffle(poker);

        //3.先留底牌
        List<String> dipai = new ArrayList<>();
        Random random = new Random();
        for (int i = 0; i < 3; i++){
            int index = random.nextInt(poker.size());
            String pai = poker.remove(index);
            dipai.add(pai);
        }
        System.out.println(dipai);
        //4.发牌
        List<String> you = new ArrayList<>();
        List<String> me = new ArrayList<>();
        List<String> he = new ArrayList<>();

        for (int i = 0; i < poker.size(); i++){
            String pai = poker.get(i);
            int j = i % 3;
            if(j == 0){
                you.add(pai);
            }else if(j == 1){
                me.add(pai);
            }else{
                he.add(pai);
            }
        }
        System.out.println(you);
        System.out.println(me);
        System.out.println(he);
    }
}

Java三大特性

​ 继承,多态,封装,抽象

数组

容器的概念

​ 是将多个数据存储到一起,每个数据称之为容器的元素

​ //水杯,衣柜,教室

数组

就是用来存储固定长度的容器,并且保障所有元素的类型统一

数组的定义方式

1.静态绑定

2.动态绑定

思考

​ 面向对象, 面向过程

​ java,c#; c语言

  1. 数组是不是对象吗

    高级一点:现实世界的抽象,有一些属性(实例域),有一些行为(方法) 不是某类具体的事物

    低级一点:内存中的一块空间,里面存放数据 是对象

    数组就是对象

  2. 数组是什么类型(强类型,弱类型)
    类型分两种
    1. 基本数据类型: byte,int,short,long,boolean,double,float, char
    2. 引用数据类型: String

​ jvm(java虚拟机) 创建数组类型[I,于八大基本数据类型一样,是我们的内建类型

  1. 数组的继承

​ Object是所有类的超类

特例:

​ 数组类型可以向上转型为Object[],但是真实父类其实是Object。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值