Java基础——Number类
Number类
在使用数字时,我们通常会使用内置数据类型,如下:
int a = 100;
double b = 11.22;
//byte的取值范围为(-128~127),占用int类型的四分之一空间。
byte c = 127;
//short取值范围为(-32768~32767),占用int类型的二分之一空间.
short d = 32767;
//boolean只有两个取值:true和false,表示一位的信息。
boolean e = true;
long f = 1000;
float g = 234.3f;
char h = 'A';
然而在数据开发中,我们进程遇到需要使用对象而不是使用内置数据类型的对象。为了解决之一问题,Java为每一个内置数据类型提供了对应的包装类(比如使用该类型所拥有的函数)
以上基本数据类型的包装类如下:
基本数据类型 | (对应的) 包装类 |
---|---|
boolean | Boolean |
byte | Byte |
short | Short |
long | Long |
char | Character |
int | Integer |
float | Float |
double | Double |
所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number的子类。(Character、Boolean)单独。 |
这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number类属于java.lang包。
下面使用Integer对象的实例:
public class Test {
public static void main(String args[]){
Integer x=5;
x +=20; //当x被赋值为整型值时。由于x是一个对象,所以编译器要对x进行装箱。然后为了使x能进行加运算,所以要对x进行拆箱。
System.out.println(x);
}
}
Number类方法
xxxValue()方法
例题:
类型 | 方法 | 用途 |
---|---|---|
byte | byteValue | 以byte形式返回指定的数值 |
abstract double | doubleValue() | 以double形式返回指定的数值 |
abstract float | floatValue() | 以float形式返回指定的数值 |
abstract int | intValue() | 以int形式返回指定的数值 |
abstract long | longValue() | 以long形式返回指定的数值 |
short | shortValue() | 以short形式返回指定的数值 |
compareTo()方法
compareTo()方法用于将Number对象与方法的参数进行比较。该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较
equals()方法
``
valueOf()方法
valueOf()方法用于返回给定参数的原生Number对象值,参数可以是原生数据类型,String等。
该方法是静态方法,该方法接收两个参数:字符串String,和基数。
- 语法(以Integer类为例)
static Integer valueOf(int i) //i为Integer对象的整数,返回一个表示指定的int值的Integer实例
static Integer valueOf(String s) //s为Integer对象的字符串,
static Integer valueOf(String s,int radix) //radix为在解析字符串s时使用的进制数,用于指定使用的进制数。返回一个Integer对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的String中提取的值
例题:
toStrng()方法
- 以String类为例
String toString() //toString():返回表示Integer值的String对象
static String toString(int i) //i为要转换的整数,返回int的String对象。
- 例题:
parseInt()方法
parseInt()函数可解析一个字符串,并返回一个整数,
- 语法
System.out.println(Integer.parseInt(String a,int radix));
System.out.println(Double.parseDouble(String a,int radix));
//Integer() 、Double()为必需,指定返回对象
//a(必需)要被解析的字符串
//radix可选,表示要解析的数字的基数,该值介于2~36之间(若为16就返回十六进制数)。
例题: