包装类的使用

包装类的概述

在Java中,很多类的方法都需要接收引用类型的对象,此时就无法将一个基本数据类型的值传入。为了解决这样的问题,JDK中提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装成引用数据类型的对象。

 

 

 

除了Integer和Character类,其他包装类的名称和基本数据类型的名称一致,只是类名的第一个字母需要大写。

包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念。其中,装箱是指将基本数据类型的值转为引用数据类型,反之,拆箱是指将引用数据类型的对象转为基本数据类型。

接下来以int类型的包装类Integer为例,学习一下装箱的过程

public class Example01 {
    public static void main(String[] args) {
        int a = 10;
        Integer in = new Integer(a);
        System.out.println(in.toString());
    }
}

在创建Integer时,将int类型的变量a作为参数传入,从而转为Integer类型。由于Object类是所有类的父类,因此第5行代码的输出语句中,可以通过调用toString()方法将字符串的形式打印出来。需要注意的是,此处的toString()方法是可以省略的

Integer除了具有Object类的所有方法外,还有一些特有的方法

 

 

 intValue()方法可以将Integer类型的值转为int类型,这个方法可以用来进行拆箱操作。接下来通过一个案例来演示intValue()方法的使用

public class Example02 {
    public static void main(String[] args) {
        Integer num = new Integer(20);
        int a = 10;
        int sum = num.intValue() + a;
        System.out.println("sum = "+sum);
    }
}

parseInt()方法在程序中很常用,它是一个静态方法,用于将一个字符串形式的值转为int类型。接下来通过一个案例来演示parseInt()方法的使用,该案例实现了在屏幕上打印 " * " 矩形,其中的宽和高分别是20和10

public class Example03 {
    public static void main(String[] args) {
        int w = Integer.parseInt("20");
        int h = Integer.parseInt("10");
        for (int i = 0; i < h; i++) {
            StringBuilder sb = new StringBuilder();
            for (int j = 0; j < w; j++) {
                sb.append("*");
            }
            System.out.println(sb.toString());
        }
    }
}

使用包装类时,需要注意以下几点。

1. 包装类都重写了Object类中的toString()方法,以字符串的形式返回被包装的基本数据类型的值
2. 除了Character外,包装类都有valueOf(String s)方法,可以根据String类型的参数创建包装类对象,但参数字符串s不能为null,而且字符串必须是可以解析为相应基本类型的数据。否则虽然编译通过,但运行时会报错。
3. 除了Character外,包装类都有parseXxx(String s)的静态方法,将字符串转换为对应的基本类型的数据。参数s不能为null,而且同样必须是可以解析为相应基本类型的数据。否则编译通过,但运行时会报错
4. JDK 5.0新特性---自动拆箱和装箱,基本数据类型和包装类型可以进行混合数学运算,也可以直接将两个Integer类型进行数学运算
5. 为了提供性能,在Integer类的内部提供了自动装箱池,也就是把-128~127之间的整数提前装箱完毕,若程序中需要该范围内的数据则直接从装箱池中获取无需创建新对象

date类

java.util.Date类用于描述特定的瞬间,可以精确到毫秒。通常描述年月日时分秒的信息

构造方法:

Date()        
    无参构造方法,默认使用当前系统时间来初始化对象
    
Date(long date)        
    根据参数指定的毫秒来构造对象,参数为距离1970年1月1日0时0分0秒的毫秒数,该方法与File类中的方法搭配使用很方便

常用方法:

    long getTime()        
    用于获取调用对象距离1970年1月1日0时0分0秒的毫秒数
    
    void setTime(long time)        
    根据参数指定的毫秒数来调整对象描述的时间

SimpleDateFormat类

java.text.SimpleDateFormat类用于实现Date类型和String类型之间的转换,调用日期格式

常用方法:

    SimpleDateFormat(String pattern)
    根据参数指定的格式来构造对象
    参数字符串中格式:y - 年;M - 月;d - 日;H - 时;m - 分;s - 秒 
    
    String format(Date date)
    用于将Date类型转换为String类型并返回
    
    Date parse(String sourse)
    用于将String类型转换为Date类型并返回

Calender类

java.util.Calendar类用于取代Date类中某些方法用来描述年月日时分秒的信息

常用方法:

    static Calendar getInstance()
    用于返回Calendar的类型的对象
    
    set(int year,int month,int day,int hourOfDay,int minute,int second)
    将当前调用对象中的日期信息设置为参数指定的内容
    传入的月份减1
    Date getlime()
    用于将Calendar类型转换为Date类型

 

posted @ 2019-10-14 18:32  tunan96  阅读(250)  评论(0编辑  收藏  举报