为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季

难度入门
时长 5小时 0分
学习人数
综合评分9.50
1125人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.4 逻辑清晰
  • “==” 和 equals() 有什么区别呢?

    ==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象

    equals(): 比较存储在两个字符串对象中的内容是否一致

    PS:字节是计算机存储信息的基本单位,1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节,1 个英文字符存储需要 1 个字节。汉字转换为字节后超过 127,如果超过就会溢出,以负数的形式显示。

    查看全部
  • 每次 new 一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用 ”==” 比较时也为 ”false” ,如果只需比较内容是否相同,应使用 ”equals()” 方法(

    查看全部
  • String 类的常用方法:

    53d9f7d200010bb007780366.jpg

    友情提示:

    1. 字符串 str 中字符的索引从0开始,范围为 0 到 str.length()-1

    2. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回 -1

    3. 使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符


    查看全部
  • 非检查异常

    http://img1.sycdn.imooc.com//5e78a77800018aa513660768.jpg

    查看全部
    0 采集 收起 来源:Java异常简介

    2020-03-23

  • try {
    //一些会抛出异常的方法
    } catch (Exception e) {
    //处理该异常的代码块
    } finally {
    //最终将要执行的代码块
    }

    多重catch的时候,要由小到大,子类到父类
    catch(MismatchException e){}
    catch(){}
    catch(Exception e){}

    查看全部
  • Set不能使用get()方法,因为它是无序的,不能用位置

    http://img1.sycdn.imooc.com//5e74d2bd00012fb211600476.jpg

    查看全部
  • 泛型类型限制

    http://img1.sycdn.imooc.com//5e74d0ab00017a2f12310512.jpg

    查看全部
  • package com.yangkai.pai;
    
    import java.util.*;
    
    public class PlayTest {
    
        //创建扑克牌的载体,扑克牌是有序的,不重复载体,所以用List集合
        List<Pai> list=new ArrayList<Pai>();
        List<Person> persons=new ArrayList<Person>();
        Map<Short,String> huaMap=new HashMap<Short, String>(){
            {
                put((short)0,"红桃");
                put((short)1,"黑桃");
                put((short)2,"方片");
                put((short)3,"梅花");
            }
        };
        /**
         * 创建洗牌方法
         */
        public void init(){
            System.out.println("============洗牌中==========");
            //清空牌库
            list=new ArrayList<Pai>();
            //创建13*4 也就是 52张牌的对象,因为这些牌是随机排列的,所以使用set集合
            Set<Pai> pais=new HashSet<Pai>();
            for(int i=1;i<14;i++){
                for (short j = 0; j < 4; j++) {
                    Pai pai=new Pai();
                    pai.setHua(j);
                    pai.setNumber(i);
                    pais.add(pai);
                }
            }
            //遍历set集合,把牌放入list集合中,也就是放入牌库中
            list.addAll(pais);
        }
    
        /**
         * 创建玩家
         */
        public void initPerson(){
            System.out.println("==========初始化玩家=========");
            Person p1=new Person();
            p1.setId(1);
            p1.setName("赌神");
            persons.add(p1);
            Person p2=new Person();
            p2.setId(2);
            p2.setName("赌圣");
            persons.add(p2);
        }
    
        /**
         * 发牌,每人发两张
         */
        public List<HandPai> fapai(){
            System.out.println("=========开始发牌=========");
            //如果牌数少于4张,调用洗牌方法
            if(list.size()<4){
                this.init();
            }
            //获取手牌
            List<HandPai> handList=new ArrayList<HandPai>();
            for(int i=4;i>0;i--){
                //生成一张手牌
                HandPai handPai=new HandPai();
                //抽牌
                Pai pai=list.get(i-1);
                //给手牌赋值
                handPai.setHua(pai.getHua());
                handPai.setNumber(pai.getNumber());
                //发给一个玩家
                if(i%2==0){
                    handPai.setName(persons.get(0).getName());
                }else{
                    handPai.setName(persons.get(1).getName());
                }
                handList.add(handPai);
                //从牌库移除一张牌
                list.remove(i-1);
                System.out.println("玩家:"+handPai.getName()+",发牌:"+huaMap.get(handPai.getHua())+handPai.getNumber());
            }
            return handList;
        }
    
        /**
         * 比较两个人的手牌大小
         * @param handPais
         */
        public void bijiao(List<HandPai> handPais){
            Collections.sort(handPais,new PaiCompara());
            System.out.println("获胜者为:"+handPais.get(3).getName()+
                    ",最大点数为:"+handPais.get(3).getNumber() +
                    ",花色为:"+huaMap.get(handPais.get(3).getHua()));
        }
    
        /**
         * 游戏入口
         * @param args
         */
        public static void main(String[] args) {
            System.out.println("===欢迎进入欢乐比大小游戏===");
            System.out.println("====================");
            System.out.println("====== 1:开始游戏 ===");
            System.out.println("====== 2:退出游戏 ===");
            System.out.println("====================");
            System.out.println("===请输入1并按回车开始游戏===");
            Scanner scanner=new Scanner(System.in);
            int cmd=scanner.nextInt();
            if(cmd == 1){
                PlayTest  playTest=new PlayTest();
                playTest.init();
                playTest.initPerson();
                do {
                    List<HandPai> handPaiList=playTest.fapai();
                    playTest.bijiao(handPaiList);
                    System.out.println("====================");
                    System.out.println("====== 3:继续发牌 ===");
                    System.out.println("====== 2:退出游戏 ===");
                    System.out.println("====================");
                    cmd=scanner.nextInt();
                }while (cmd != 2);
                System.out.println("===欢迎下次光临===");
            }else if(cmd == 2){
                System.out.println("===欢迎下次光临===");
            }
    
    
        }
    
        /**
         * 手牌对象
         */
        class HandPai implements Comparable<HandPai>{
            //玩家名称
            private String name;
    
            //扑克牌花色 0-红桃 1-黑桃 2-方片 3-梅花
            private Short hua;
    
            //牌号 1-13
            private int number;
    
            public String getName() {
                return name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
    
            public Short getHua() {
                return hua;
            }
    
            public void setHua(Short hua) {
                this.hua = hua;
            }
    
            public int getNumber() {
                return number;
            }
    
            public void setNumber(int number) {
                this.number = number;
            }
    
            public int compareTo(HandPai o) {
                return 0;
            }
        }
    
        /**
         * 定义比较规则
         */
        class PaiCompara implements Comparator<HandPai>{
    
            public int compare(HandPai o1, HandPai o2) {
                if(o1.getNumber()>o2.getNumber()){
                    return 1;
                }else if(o1.getNumber()<o2.getNumber()){
                    return -1;
                }else{
                    if(o1.getHua()>o2.getHua()){
                        return 1;
                    }else if(o1.getHua()<o2.getHua()){
                        return -1;
                    }
                }
                return 0;
            }
        }
    
        /**
         * 这是一个扑克牌对象
         */
        public class Pai {
            //扑克牌花色 0-红桃 1-黑桃 2-方片 3-梅花
            private Short hua;
    
            //牌号 1-13
            private int number;
    
            public Short getHua() {
                return hua;
            }
    
            public void setHua(Short hua) {
                this.hua = hua;
            }
    
            public int getNumber() {
                return number;
            }
    
            public void setNumber(int number) {
                this.number = number;
            }
        }
        /**
         * 创建打牌的玩家
         */
        public class Person {
    
            /**
             * 玩家id
             */
            private int id;
    
            /**
             * 玩家名称
             */
            private String name;
    
    
            public int getId() {
                return id;
            }
    
            public void setId(int id) {
                this.id = id;
            }
    
            public String getName() {
                return name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
        }
    }


    查看全部
  • java 集合类型

    http://img1.sycdn.imooc.com//5e744e340001cc6813290637.jpg

    查看全部
  • Sting 字符串方法

    53d9f7d200010bb007780366.jpg

    查看全部
  • 异常经验与总结

    http://img1.sycdn.imooc.com//5e723d790001a2ab11920561.jpg

    查看全部
    0 采集 收起 来源:经验总结

    2020-03-18

  • 处理异常 多重catch

    http://img1.sycdn.imooc.com//5e7238d60001973b09240622.jpg

    查看全部
  • 异常之检查异常

    http://img1.sycdn.imooc.com//5e72382c00011b7911610475.jpg

    查看全部
    0 采集 收起 来源:Java异常简介

    2020-03-18

  • 异常类型-非检查异常http://img1.sycdn.imooc.com//5e7237eb0001a5da12390701.jpg

    查看全部
    0 采集 收起 来源:Java异常简介

    2020-03-18

  • 比较规则,规则。

    查看全部

举报

0/150
提交
取消
课程须知
此部分为 Java 课程的进阶内容,适合具有一定 Java 基础的伙伴们学习,如果您是新手,建议您移步 《Java入门第一季》 和 《Java入门第二季》,在理解并掌握面向对象相关知识后再回来进修。
老师告诉你能学到什么?
本课程将学习 Java 中的异常处理、集合框架、字符串、常用类等,逐步学习掌握 Java 高级技术。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!