各种实用类

1.枚举

1.1枚举概述

枚举是一组固定的常量组成的类型,在Java中每一个都继承Java.lang.Enum类,使用关键字enum定义

枚举语法:

访问修饰符 enum 枚举类{
常量1,常量2,…
//其他成员
}
在枚举中开可以定义多个常量,表示不同的枚举值,之间用逗号隔开。
在枚举中可以定义其他成员,包括构造方法等,置于枚举常量之后。
可以使用“枚举类.常量名”的形式取出枚举中的指定内容。

下面代码定义了性别的枚举,两个枚举常量代表“男”和“女”

public enum  Genders{
		Male,Female;
}

1.2枚举方法

T values()
以数组的形式返回枚举类型的所有成员
代码示例在下面for循环

int ordinal()
获取枚举成员的索引位置
代码示例在下面for循环

enum  Week{
    MON,TUE,WED,FNH,FRI,SAT,SUN //定义一个枚举,包括七个常量,表示一周七天
}
public class Hebdomad {
    public static void main(String[] args) {
    	
        for (int i = 0; i < Week.values().length; i++) {
            System.out.println("索引"+Week.values()[i].ordinal()+",值:"+Week.values()[i]);
        }

    }
}

T valueOf()
将普通字符串转换为枚举实例

        System.out.println(Week.valueOf("MON"));

int compareTo()
比较两个枚举成员在定义的顺序,结果为负整数或者正整数,零,表示当前对象小于,等于或者大于指定对象

 System.out.println(Week.FRI.compareTo(Week.TUE));//FRI是第5个定义的值,TUE是第2个定义的值;5-2=3,所以结果是3

1.3 枚举的好处

枚举可以使代码更易于维护,有助于确保为变量指定合法的,期望的值
使用枚举赋值,只需输入枚举名和“ . ”,就可以显示所以枚举值
枚举使代码更加清晰,允许用描述性的名称表示数据,使用时直观方便

2. 包装类

2.1包装类概述

包装类是指将基本数据类型封装到一个类中,也就是将基本类型包装成一个类型。java程序设计语言为每一种基本类型都提供了一个包装类,这些包都在java.lang包中,

在这里插入图片描述

所有数字类型包都继承Number类,Number类是一个抽象类

包装类包含每种基本数据类型的相关属性,如最大值,最小值,以及相关的操作方法

2.2 包装类和基本数据类型的转换

在java中,基本数据类型创建包装类对象通常可以采用下面两种方法

public Type(type value)//Type表示包装类,参数type为基本参数类型
public Type(String value)

针对每一个包装类,都可以使用关键字new将一个基本数据类型包装为一个对象,示例:

Integer intValue= new Integer(21);
Integer intValue= new Integer("21");

2.3包装类转换为基本数据类型

包装类转换为基本数据类型通常采用如下方法:

public type typeValue();//type指的是基本数据类型

2.4装箱拆箱

自动装箱:把基本数据类型变量直接转换为对应的包装类对象,或者转换为Object

自动拆箱:与装箱相反,将包装类对象转换成对应的基本类型变量

装箱拆箱示例:

//基本数据类型变量转换为包装类(装箱)
		Integer inObj=5;
        Object boolObj=true;
        System.out.println(inObj+","+boolObj);
//包装类转换为基本数据类型(拆箱)
        int it=inObj;
        System.out.println(it);
        boolean b=(Boolean) boolObj;
        System.out.println(b);
        

3.日期类

3.1创建日期对象

日期和时间的类都在java.time包中,这些类都是不可以变的,线程安全的,下面是一些常用类
LocalDate:表示日期(年/月/日)
LocalTime:表示时间(时/分/秒/毫秒)
LocalDateTime:表示日期和时间(年/月/日/时/分/秒/毫秒)

3.2常用方法

日期类 now()//静态方法,根据当前时间创建对象,返回日期对象

LocalDate dateTime= LocalDate.now();

日期类 of(int year,Month month,int dayOfMonth)//静态方法,根据指定日期/时间创建日期对象,如LocalDate,of(2021,Month,APRIL,4)

 LocalDate date = LocalDate.of(2021, Month.APRIL, 4);
        System.out.println("指定日期为:" + date);

Mointh getMonth()//获取月份,返回Month,是一个表示月份的枚举

LocalDate currentDate = LocalDate.now();
Month month = currentDate.getMonth();
System.out.println("当前的月份为:" + month);

int getDayOfMonth()//返回当前日期类对象的月份天数

Calendar calendar = Calendar.getInstance();
int dayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("当前月份的天数为:" + dayOfMonth);

int getYeat()//返回当前日期类对象的年份

 LocalDate currentDate = LocalDate.now();
 int year = currentDate.getYear();
 System.out.println("当前的年份为:" + year);

3.3日期格式化
示例:

 LocalDate dateTime= LocalDate.now();
 DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy年mm月份dd日期");
 //两种格式化方式
 String str1=dateTime.format(formatter);
 String str2=formatter.format(dateTime);

4.Random类

4.1Random构造方法

Random()//创建一个随机数生成器
Random(long seed)//使用单个long种子创建一个随机数生成器

Random类定义了很多用于获取随机数的方法,最常用的是nextInt()方法,它返回下一个int类型的伪随机数,如下有两个重载方法

int nextInt();//返回下一个伪随机数,它是此随机数生成器序列中均匀分布的int值

int nestInt(int n);//返回下一个伪随机数,它是取自此随机数生成器序列的,在0(包括)和指定值n(不包括)之间均匀分布的int值

扩展:Random类还定义了得到long型,Boolean型,float型等伪随机数的方法,可以在API查看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值