Java学习笔记day7——枚举类练习、包装类、抽象类、接口

1. 枚举类的常用方法

(1)String name():返回枚举常量对象名称

(2)int ordinal():返回常量对象的下标

(3)String toString():Enum父类又重写了Object类的toString,返回的也是常量对象的名称

        当然,子类还可以重写

编译器会自动添加如下方法:

(1)static 枚举类型[] values():返回枚举类型的所有常量对象

(2)static 枚举类型 valueof(String name)

枚举练习:月份

(1)声明月份枚举类Month

声明一个属性,私有化,加final修饰

description(描述,例如:JANUARY的description为一月,FEBRUARY的description为二月,以此类推)

声明一个有参构造Month(String description),创建12个常量对象,常量对象的名称如下

JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER

声明public static Month getByValue(int value):返回对应月份值的枚举对象,例如实参传入1,则返回JANUARY对象

声明public int length(boolean leapYear):返回这个月的总天数,如果当前对象是FEBRUARY,并且leapYear是true,则返回29,否则返回28

重写toString():返回对象信息,例如:1->JANUARY->一月份

(2)在测试类中,从键盘输入年份和月份值。获取对应的月份对象,并打印月份对象,并获取月份总天数

代码为:

public enum Month {
    JANUARY("一月"),
    FEBRUARY("二月"),
    MARCH("三月"),
    APRIL("四月"),
    MAY("五月"),
    JUNE("六月"),
    JULY("七月"),
    AUGUST("八月"),
    SEPTEMBER("九月"),
    OCTOBER("十月"),
    NOVEMBER("十一月"),
    DECEMBER("十二月");
    private final String description;

    Month(String description) {
        this.description = description;
    }
    public static Month getByValue(int value){
        Month[] months = Month.values();
        return months[value-1];
    }
    public int length(boolean leapYear){
        switch(this){
            case FEBRUARY:
                return leapYear?29:28;
            case APRIL:
            case JUNE:
            case SEPTEMBER:
            case NOVEMBER:
                return 30;
            default:
                return 31;
        }
    }

    @Override
    public String toString() {
        return (ordinal()+1)+"->" +name()+
                "->" + description ;
    }
}

测试类:

import java.util.Scanner;

public class TestMonth {
    public static void main(String[] args) {
        Scanner input  = new Scanne
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值