常用类和枚举类型
1、包装类
java编程的特点是面向对象的,而基本数据类型不能实现这一功能,使得程序开发存在一定的弊端。因此提出了包装类的概念,分别把Java中8个基本数据类型包装成相应的类。
8个包装类:
1.1 Integer类
Integer类用于封装int类型数据。java.lang包中的Byte类、Integer类、Short类和Long类,分别是基本数据类型byte、int、short和long的包装类,都是Number类的子类,且都是对整数的操作。
构造方法
两种方法:
- Integer(int number)
- Integer (String str)
Integer number = new Integer(7);
Integer number = new Integer("45");
如果要使用字符串变量创建Integer变量,字符串变量的值必须是整数型的,否则将会抛出NumberFormatException异常。
常用方法
- compareTo(Integer anotherInteger): 在数字上比较两个Integer对象,返回一个整数,表示比较结果。如果该Integer等于另一个Integer参数,则返回0;如果该Integer在数字上小于另一个Integer参数,则返回小于0的值;如果该Integer在数字上大于另一个Integer参数,则返回大于0的值1。
- intValue(): 以int类型返回该Integer的值。
- parseInt(String s): 将字符串转换成整数。
- valueOf(int i): 将int类型的数值转换为Integer对象。
- max(int a, int b): 返回两个整数中的最大值。
- min(int a, int b): 返回两个整数中的最小值。
- sum(int a, int b): 计算两个整数的和。
- toString(): 将Integer对象转换为字符串。
- valueOf(String str):返回String型参数的Integer对象
常量
- MAX_VALUE:表示int类型可取的最大值,即 2 31 − 1 2^{31}-1 231−1
- MIN_VALUE:表示int类型可取的最小值,即 − 2 31 -2^{31} −231
- SIZE:用来表示int值的位数
- TYPE:表示基本类型int的Class实例。
1.2 Number类
要把Number类的子类对象转换为对应的基本数据类型,需要使用Number类对应子类中的方法。byteValue(、intValue()、floatValue()、shortValue()、longValue()、doubleValue()。
自动装箱、自动拆箱
2、Math类
位于java.lang包中(不需要引入,系统会自动调用),其中的方法都被定义为static形式,因此在程序中可以直接通过Math类的类名调用某个数学方法,如:
Math.方法;
Math.PI;
Math.E; //表示自然对数底数e的值
2.1 常用数学运算方法
- 指数函数:exp、log、log10、sqrt、cbrt、pow
- 取整函数方法:ceil、floor、rint、round
3、Random类
java.util包中提供了Random类。
构造函数:
Random r = new Random();
方法:
0 <= nextInt(int n) < n;
4、Date类
java.util包中提供了Date类来操作日期和时间。
- 构造方法:
- Date():分配Date对象并初始化对象,以表示分配它的时间。
- Date(long date):分配Date对象并初始化对象,以表示从标准基准时间以来的指定毫秒数(1970年1月1日00:00:00 GMT)
long timeMillis = System.currentTimeMillis();
Date date = new Date(timeMillis); //获取系统当前时间,计算与基准时间的毫秒数
- 常用方法
- after(Date):判断当前日期对象是否在给定日期对象之后
- before(Date):判断当前日期对象是否在给定日期对象之前
- equals(Object):判断两个日期是否相等
- compareTo(Date):比较两个日期的顺序,如果当前日期对象大于给定日期对象,返回正数,如果小于给定日期对象,返回负数,如果等于给定日期对象,返回零
- getTime():获得自1970年1月1日开始到现在所表示的时间
- setTime(long time):设置时间
4.1 DataFormat类
对日期类进行格化式和解析。DateFormat本身是一个抽象类,实例化的方式一种是通过静态方法的调用,处理的是长日期和长时间类型。
- getDateInstance()
- getTimeInstance()
- getDateTimeInstance()
- parse(String):将字符串解析成Data类型
- format(Data):将Data类型,格式化成字符串
一种是通过创建子类对象创建SimpleDateFormat对象,处理的是短日期和短时间类型,可以自定义格式.
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class DateFormatTest {
public static void main(String[] args) {
// 创建日期
Date date = new Date();
// 创建不同的日期格式
DateFormat df1 = DateFormat.getInstance();
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE");
DateFormat df3 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 EE", Locale.CHINA);
DateFormat df4 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE", Locale.US);
DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd");
DateFormat df6 = new SimpleDateFormat("yyyy年MM月dd日");
// 将日期按照不同格式进行输出
System.out.println("-------将日期时间按照不同格式进行输出------");
System.out.println("按照Java默认的日期格式: " + df1.format(date));
System.out.println("按照Java默认的日期格式: " + df1.format(date));
System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE,系统默认区域:" + df2.format(date));
System.out.println("按照指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE,区域为中国 : " + df3.format(date));
System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE,区域为美国: " + df4.format(date));
System.out.println("按照指定格式 yyyy-MM-dd: " + df5.format(date));
System.out.println("按照指定格式 yyyy年MM月dd日: " + df6.format(date));
}
}
5、枚举类型
枚举类型被用来设置常量。
传统将常量设置在接口中。由于枚举类型是一种数据类型,而且被视为一系列具有名称的常量的集合,所以被赋予了在程序编译时检查数据类型的功能,从而取代了传统常量。
public enum Constants{
Constants_A,
Constants_B
}