包装类

来源:互联网 发布:挖耳屎 知乎 编辑:程序博客网 时间:2024/04/28 21:06

包装类

Java为基本类型提供包装类,这使得任何接受对象的操作也可以用来操作基本类型,直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。

每个java基本数据类型在java.lang包中都有一个相应的包转类,见下表12-1

12-1 Java基本数据类型及其对应包装类

基本类型

对应包装类

int

Integer

char

Character

btye

Byte

short

Short

long

Long

float

Float

double

Double

boolean

Boolean

1ByteShortIntegerLongDoubleFloat

         这六个类是与整数和实数相关的类,每个类都提供了两个构造方法用于创建类的实例,两个构造方法都是含有一个参数,参数类型为其所对应的基本数据类型或字符串,如Integer类的两个构造方法如下:

         Integer(int value)

Integer(String s)

需要注意的是,如果使用字符串作为参数的构造方法创建包装类的实例时,如果该字符串不能转换成对应的数据类型时会产生NumberFormatException异常。如下语句则会抛出异常。

Integer i=newInteger(“abc”);

在包装类中提供了一些实用的静态成员方法,如parseXXX方法,该方法在这四个类中都有提供,主要用于将字符串类型表示的数据转换为对应的基本数据类型,如

Integer.parseInt(Stringstr)用于将str转换为int类型

Byte.parseByte(Stringstr)用于将str转换为byte类型

Short.paresShort(Stringstr)用于将str转换为short类型

Long.parseLong(Stringstr)用于将str转换为long类型

Double.parse Double(String str)用于将str转换为double类型

Float.parse Float(String str)用于将str转换为foat类型

         这六个与数值相关的包装类都是类Number的直接子类,因此它们都直接继承或覆盖了Number类的方法。下表12-2给出了Number类的所有成员方法。

12-2 Number类所有成员方法

成员方法

说明

public byte byteValue()

byte形式返回指定的数值。

public short shortValue()

short形式返回指定的数值。

public abstract int intValue()

int形式返回指定的数值。

public abstract long longValue()

long形式返回指定的数值。

public abstract float floatValue()

float形式返回指定的数值。

public abstract double doubleValue()

double形式返回指定的数值。

从上表中可以看出,除byteValue()shortValue()外,其余四个成员方法均为抽象方法,因此,其子类(非抽象类)必须实现这些抽象方法,因此,在本节提到的六个包装类中都对这四个抽象方法做了相应的实现。

2Character

Character类是基本数据类型char的包装类,该类的构造方法只有一个,形式为:

public Character(char value)

作用是将char类型的数据包装成Character类的类对象,同时,Character类还提供了多个与字符处理相关的方法。详见下表12-3

12-3 Character常用成员方法

成员方法

说明

boolean isJavaIdentifierPart(char ch)

确定指定字符是否可以是 Java标识符中首字符以外的部分。

boolean isJavaIdentifierStart(char ch)

确定是否允许将指定字符作为 Java标识符中的首字符。

boolean isDigit(char ch)

确定指定字符是否为数字。

boolean isLetter(char ch)

确定指定字符是否为字母。

boolean isLetterOrDigit(char ch)

确定指定字符是否为字母或数字。

boolean isLowerCase(char ch)

确定指定字符是否为小写字母

boolean isUpperCase(char ch)

确定指定字符是否为大写字母。

char toLowerCase(char ch)

将字符ch转换为小写

char toUpperCase(char ch)

将字符ch转换为大写

上表中所有方法均由public static修饰,即公有静态成员方法。需要说明的是,由于java采用的是Unicode编码,因此,这里提到的某些名词与我们在其他语言中所接触的并不一定相同,如这里所说的“字母”并不是指大小写的26个英文字母,它的范围很广,还包括其他一些国家和地区的文字,如中文、日文、韩文等。

Character.isLetter(‘’);其返回值的结果应该为“true”,请读者自行验证。Character中的isJavaIdentifierPartisJavaIdentifierStart方法为我们命名java标识符提供了依据,通过前者我们可以判断出哪些可以作为java标识符的组成部分,通过后者可以判断出哪些可以作为java标识符的首字母。

3Boolean

         Boolean类提供了两个构造方法,分别为:

public Boolean(boolean value)

public Boolean(String s)

       需要注意的是,对于第二个传入参数为String类型的构造方法,其参数值s可以为任何字符串,只有当字符串的值为“true”时(忽略大小写),生成的类对象表示true,否则,表示false。如:

         System.out.println(newBoolean(“TrUe”)); //打印true

         System.out.println(newBoolean(“false”)); //打印false

         System.out.println(newBoolean(“abc”)); //打印false

         System.out.println(newBoolean(“OK”)); //打印false

         Boolean类也提供了parse方法,即parseBoolean(Strings),通过该方法,可以将字符串转换为一个boolean类型值,转换规则与Boolean传字符串参数的构造方法相同。