首页 > 其他分享 >m1_day21

m1_day21

时间:2024-05-10 23:45:31浏览次数:26  
标签:static String Season day21 枚举 m1 new public

课程内容:
  • 枚举

  • 时间类


枚举:enum 当希望一个类的对象是有限个 确定的 非常使用枚举类型 【枚举其实就是列举一个类的对象有哪些 当需要使用的时候从已创建的对象中进行选择】
  • 四大类型:

    • class interface enum @interface

    • 类 接口 枚举 注解

  • 如何定义枚举

    jdk5.0之前 没有出现关键字enum
    class Season{//季节 希望只能创建4个对象

    //私有化构造方法 防止外界随意的创建对象
    private Season(){}

    //自己创建4个对象
    //static:防止出现死循环嵌套
    //final:防止外界随意的修改Season值
    public final static Season SPRING = new Season();
    public final static Season SUMMER = new Season();
    public final static Season AUTUMN = new Season();
    public final static Season WINTER = new Season();
    }

    jdk5.0开始 出现了关键字enum
    //jdk5.0开始 出现关键字enum
    enum Season{//季节 希望只能创建4个对象

    //枚举里面要求上来先定义枚举常量 然后再写其他的代码

    //枚举中的属性前面自动加上修饰符:public static final
    //枚举常量和常量之间用,隔开 最后一个枚举常量的后面有时需要加;
    //如果最后一个枚举对象后面没有其他的语句;可以省略
    //如果最后一个枚举对象的后面还有其他的语句 ;不可以省略
    SPRING,//SPRING=> public static final Season SPRING = new Season();
    SUMMER,
    AUTUMN,
    WINTER

    //私有化构造方法 防止外界随意的创建对象
    //枚举中的构造方法 默认都是私有的
    //private Season(){}
    }
  • 枚举里面可以正常的定义属性和方法 所有的枚举类型默认都继承Enum类 在Enum类中toString()已经覆盖了 打印枚举对象的时候显示:枚举常量的名字 如果对父类的toString()不满的话 可以在枚举中进行覆盖

  • 枚举不能在继承其他的类 因为Java中的类只能单继承 但是可以实现多个接口

    interface MyInfo{
    //抽象方法:描述每个季节代表歌名
    void song();
    }

    enum Season implements MyInfo{

    SPRING("春","春意盎然"){
    @Override
    public void song(){
    System.out.println("《春天在哪里》");
    }
    },//SPRING("春","春意盎然");
    /**
    public static final Season SPRING = new Season("春","春意盎然"){
    @Override
    public void song(){
    。。。。
    }
    }
    */
    SUMMER("夏","夏日炎炎"){
    @Override
    public void song(){
    System.out.println("《夏天的风》");
    }
    },
    AUTUMN("秋","秋高气爽"){
    @Override
    public void song(){
    System.out.println("《秋天不回来》");
    }
    },
    WINTER("冬","冰天雪地"){
    @Override
    public void song(){
    System.out.println("《你就像那冬天里的一把火》");
    }
    };

    //枚举中可以正常的定义属性 而且还可以封装
    String name;
    String desc;

    //如果枚举中提供了属性 那么尽量写出自己的构造方法
    //因为默认的构造方法没有对属性赋值
    private Season(String name,String desc){
    this.name = name;
    this.desc = desc;
    }

    //如果对Enum类中的toString()打印枚举常量名不满意 可以覆盖
    @Override
    public String toString(){
    return "中文名:" + name + " 成语:" + desc;
    }

    //@Override
    //public void song(){
    //如果song()覆盖在这个位置 那么春夏秋冬每个对象调用该方法
    //显示的结果都是一样的
    // System.out.println("《春天在哪里》");
    //}
    }
  • 枚举继承Enum类 获得一些核心方法

    static values():将枚举中的对象装进数组里面返回
    static valueOf(String):将参数字符串转换成枚举对象
    如果枚举中有一个对象和字符串名字一模一样 将枚举对象返回
    如果枚举中没有一个对象和字符串单词一样 会出现异常
    name():得到枚举对象的名字
    ordinal():得到枚举对象的下标
    compareTo():比较两个枚举对象的大小 [底层拿着下标比较]
    equals():判断两个枚举对象是否一样 [底层拿着下标比较]

    ==================================================================
    不是枚举的方法:
    EnumSet<枚举> set = EnumSet.allOf(枚举名.class);

时间类:
  • jdk1.0 Date 日期类 java.util 不安全 不支持时区

    如何得到当前时间:
    Date dd = new Date();
    如何获得指定时间:
    Date dd = new Date(long time);//在1970-1-1-0-0-000的基础上+time时间

    如何修改年月日时分秒/得到年月日时间秒 -》 过时

    如何格式化 -》 时间类 -》 String
    Data dd = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String time = sdf.format(dd);

    如何格式化 -》 String -> 时间类
    String time = "2022-2-28 15:56:06";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date dd = sdf.parse(time);
  • jdk1.1 Calendar 日历类 java.util 线程不安全

    如何得到当前时间:
    Calendar cc = Calendar.getInstance();

    如何修改年月日时分秒
    cc.set(字段,值)
    cc.set(1,2022);//将年修改成2022
    cc.set(Calendar.YEAR,2022);

    1=YEAR
    2=MONTH
    5=DAY_OF_MONTH
    11=HOUR_OF_DAY
    12=MINUTE
    13=SECOND

    如何得到年月日时分秒
    cc.get(字段)
    cc.get(1);
    cc.get(Calendar.YEAR);

    如何格式化时间 -》 Calendar -> String
    Calendar cc = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String time = sdf.format(cc.getTime());
  • jdk8.0 LocalDate LocalTime LocalDateTime java.time 线程安全的 支持时区

标签:static,String,Season,day21,枚举,m1,new,public
From: https://www.cnblogs.com/zhaodenghui33/p/18185508

相关文章

  • m1_day22
    课程内容:Date类Calendar类LocalDateLocalTimeLocalDateTime类LocalDateTime类中的核心方法:如何得到当前时间:LocalDateTimex=LocalDateTime.now();如何得到指定时间:LocalDateTimey=LocalDateTime.of(年,月,日,时,分,秒);得到年月日时分秒-》......
  • m1_day5
    课程内容:Java中的分支Java中的循环Java中的循环控制Java中的数组Java中的分支ifelse语法格式:if(boolean条件){执行语句;}elseif(boolean条件){执行语句;}elseif(boolean条件){执行语句;}else{执行语句;}ifelse排他特性如果代码能进入......
  • m1_day6
    课程内容:Java中的数组数组的复制Java中的数组什么是数组一组数据数组可以理解成一个容器用来存储多个类型相同的元素数组优势:将一组零散的数据统一管理数组的基本用法创建数组对象:int[]data=newint[5];//空间大小int[]data=newint[]{元素,元......
  • m1_day8
    课程内容:多态方法重载方法覆盖构造方法扫描仪多态:一个对象总有不同的类型去定义它作用一:创建对象-》父类类型=new子类对象();Personx=newTeacher();Animaly=newCat();当我们使用多态创建完一个对象之后这个对象只能调用父类和子类共......
  • m1_day7
    课程内容:数组的排序引用数据类型的数组面向对象封装继承多态数组的排序:手动排序冒泡排序*自动排序Arrays.sort(数组对象);只能升序排序importjava.util.*;引用数据类型的数组:当我们创建一个引用数据类型的数组的时候其实里......
  • m1_day9
    课程内容:参数传递变量的共享方法封装的意义参数传递:Java中只有值传递Java中的基本数据类型传值引用数据类型传地址......
  • m1_day10
    课程内容:String类常见的面试题String类常见的20个方法String类常见的面试题:new和不new之间的区别?Stringx="etoak"; Stringy=newString("etoak");不new的方式涉及到常量池查找机制永远先去常量池查看是否缓存过如果缓存过那么直接将值取出来使用如果没......
  • m1_day12
    课程内容:单例模式:Java中的接口单例模式:控制一个类有且只有一个对象醉汉式私有化构造方法防止外界随意的创建对象创建一个私有的静态的属于本类类型的对象提供一个公共的静态的返回本类对象的方法懒汉式-》尚不完善Java中的接口:interface相......
  • m1_day11
    课程内容:StringBuffer类常见的方法面向对象的高阶特征访问权限修饰符static修饰符final修饰符abstract修饰符单例模式StringBuffer类常见的方法:*append(String):往字符串里面追加连接reverse():翻转字符串insert(int,char):往指定下标处插入......
  • m1_day13
    课程内容:Object类的核心方法集合框架集合之ArrayList集合Object类的核心方法:Object是Java中的鼻祖类所有类的直接父类/间接父类toString():制定一个对象打印显示的内容任何一个引用数据类型都默认继承Object类获得toString()方法在Object类中toString()......