JAVA入门教程9-Number类
Java Number类
在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类
所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。
包装类 | 基本数据类型 |
---|---|
Boolean | boolean |
Byte | byte |
Short | short |
Integer | int |
Long | long |
Character | char |
Float | float |
Double | double |
这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number 类属于 java.lang 包。
Java Math类
Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。
Number & Math 类方法
下面的表中列出的是常用的 Number 类和 Math 类的方法:
序号 | 方法与描述 | |||||
---|---|---|---|---|---|---|
1 | xxxValue() 将number对象转换为xxx数据类型的值并返回。 |
|||||
2 | compareTo() 将number对象与参数比较。 |
|||||
3 | equals() 判断number对象是否与参数相等。 |
|||||
4 | valueOf() 返回一个Integer对象指定的内置数据类型 |
|||||
5 | toString() 以字符串形式返回值。 |
|||||
6 | parseInt() 将字符串解析为int类型。 |
|||||
7 | abs() 返回参数的绝对值。 |
|||||
8 | ceil() 对整形变量向左取整,返回类型为double型。 |
|||||
9 | floor() 对整型变量向右取整。返回类型为double类型。 |
|||||
10 | rint() 返回与参数最接近的整数。返回类型为double。 |
|||||
11 | round() 返回一个最接近的int、long型值。 |
|||||
12 | min() 返回两个参数中的最小值。 |
|||||
13 | max() 返回两个参数中的最大值。 |
|||||
14 | exp() 返回自然数底数e的参数次方。 |
|||||
15 | log() 返回参数的自然数底数的对数值。 |
|||||
16 | pow() 返回第一个参数的第二个参数次方。 |
|||||
17 | sqrt() 求参数的算术平方根。 |
|||||
18 | sin() 求指定double类型参数的正弦值。 |
|||||
19 | cos() 求指定double类型参数的余弦值。 |
|||||
20 | tan() 求指定double类型参数的正切值。 |
|||||
21 | asin() 求指定double类型参数的反正弦值。 |
|||||
22 | acos() 求指定double类型参数的反余弦值。 |
|||||
23 | atan() 求指定double类型参数的反正切值。 |
|||||
24 | atan2() 将笛卡尔坐标转换为极坐标,并返回极坐标的角度值。 |
|||||
25 | toDegrees() 将参数转化为角度。 |
|||||
26 | toRadians() 将角度转换为弧度。 |
|||||
27 | random() 返回一个随机数。 |
1、xxxValue() 方法
用于将 Number 对象转换为 xxx 数据类型的值并返回。
相关的方法有:
类型 | 方法及描述 |
---|---|
byte |
byteValue() : 以 byte 形式返回指定的数值。 |
abstract double |
doubleValue() : 以 double 形式返回指定的数值。 |
abstract float |
floatValue() : 以 float 形式返回指定的数值。 |
abstract int |
intValue() : 以 int 形式返回指定的数值。 |
abstract long |
longValue() : 以 long 形式返回指定的数值。 |
short |
shortValue() : 以 short 形式返回指定的数值。 |
参数
以上各函数不接受任何的参数。
返回值
转换为 xxx 类型后该对象表示的数值。
2、compareTo() 方法
用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。
该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。
语法
public int compareTo( NumberSubClass数字子类 referenceName参考名 )
参数
referenceName -- 可以是一个 Byte, Double, Integer, Float, Long 或 Short 类型的参数。
返回值
-
如果指定的数与参数相等返回0。
-
如果指定的数小于参数返回 -1。
-
如果指定的数大于参数返回 1。
实例
public class Test{ public static void main(String args[]){ Integer x = 5; System.out.println(x.compareTo(3)); System.out.println(x.compareTo(5)); System.out.println(x.compareTo(8)); } }
编译以上程序,输出结果为:
1 0 -1
3、equals() 方法
用于判断 Number 对象与方法的参数进是否相等。
语法
public boolean equals(Object o)
参数
o -- 任何对象。
返回值
如 Number 对象不为 Null,且与方法的参数类型与数值都相等返回 True,否则返回 False。
Double 和 Float 对象还有一些额外的条件,可以参阅 API 手册:JDK 1.6。
实例
public class Test{ public static void main(String args[]){ Integer x = 5; Integer y = 10; Integer z =5; Short a = 5; System.out.println(x.equals(y)); System.out.println(x.equals(z)); System.out.println(x.equals(a)); } }
编译以上程序,输出结果为:
false true false
4、valueOf() 方法
用于返回给定参数的原生 Number 对象值,参数可以是原生数据类型, String等。
该方法是静态方法。该方法可以接收两个参数一个是字符串,一个是基数。
语法
该方法有以下几种语法格式:
static Integer valueOf(int i) static Integer valueOf(String s) static Integer valueOf(String s, int radix基数)
参数
-
i -- Integer 对象的整数。
-
s -- Integer 对象的字符串。
-
radix --在解析字符串 s 时使用的基数,用于指定使用的进制数。
返回值
-
Integer valueOf(int i):返回一个表示指定的 int 值的 Integer 实例。
-
Integer valueOf(String s):返回保存指定的 String 的值的 Integer 对象。
-
Integer valueOf(String s, int radix): 返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。
实例
public class Test{ public static void main(String args[]){ Integer x =Integer.valueOf(9); Double c = Double.valueOf(5); Float a = Float.valueOf("80"); Integer b = Integer.valueOf("444",16); // 使用 16 进制 System.out.println(x); System.out.println(c); System.out.println(a); System.out.println(b); } }
编译以上程序,输出结果为:
9 5.0 80.0 1092
5、toString() 方法
valueOf() 方法用于返回以一个字符串表示的 Number 对象值。
如果方法使用了原生的数据类型作为参数,返回原生数据类型的 String 对象值。
如果方法有两个参数, 返回用第二个参数指定基数表示的第一个参数的字符串表示形式。
语法
以 String 类为例,该方法有以下几种语法格式:
String toString() static String toString(int i)
参数
-
i -- 要转换的整数。
返回值
-
toString(): 返回表示 Integer 值的 String 对象。
-
toString(int i): 返回表示指定 int 的 String 对象。
实例
public class Test{ public static void main(String args[]){ Integer x = 5; System.out.println(x.toString()); System.out.println(Integer.toString(12)); } }
编译以上程序,输出结果为:
5 12
6、parseInt() 方法 ---解析
用于将字符串参数作为有符号的十进制整数进行解析。
如果方法有两个参数, 使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
语法
所有 Number 派生类 parseInt 方法格式类似如下:
static int parseInt(String s) static int parseInt(String s, int radix)
参数
-
s -- 十进制表示的字符串。
-
radix -- 指定的基数。
返回值
-
parseInt(String s): 返回用十进制参数表示的整数值。
-
parseInt(int i): 使用指定基数的字符串参数表示的整数 (基数可以是 10, 2, 8, 或 16 等进制数) 。
实例
public class Test{ public static void main(String args[]){ int x =Integer.parseInt("9"); double c = Double.parseDouble("5"); int b = Integer.parseInt("444",16); System.out.println(x); System.out.println(c); System.out.println(b); } }
编译以上程序,输出结果为:
9 5.0 1092
7、abs() 返回参数的绝对值。参数可以是 int, float, long, double, short, byte类型。
语法
各个类型的方法格式类似如下:
double abs(double d) float abs(float f) int abs(int i) long abs(long lng)
参数
- 任何原生数据类型。
返回值
返回参数的绝对值。
8、ceil() 方法 ---天花板、上限
可对一个数进行上舍入,返回值大于或等于给定的参数。
语法
该方法有以下几种语法格式:
double ceil(double d)
double ceil(float f)
参数
- double 或 float 的原生数据类型。
返回值
返回 double 类型,返回值大于或等于给定的参数。
9、floor() 方法 ---地板
可对一个数进行下舍入,返回给定参数最大的整数,该整数小于或等给定的参数。
语法
该方法有以下几种语法格式:
double floor(double d)
double floor(float f)
参数
- double 或 float 的原生数据类型。
返回值
返回 double 类型数组,小于或等于给定的参数。
实例
public class Test{
public static void main(String args[]){
double d = 100.675;
float f = -90;
System.out.println(Math.floor(d));
System.out.println(Math.floor(f));
System.out.println(Math.ceil(d));
System.out.println(Math.ceil(f));
}
}
编译以上程序,输出结果为:
100.0 -90.0 101.0 -90.0
10、rint() 方法 ----无线电侦察
返回最接近参数的整数值。
语法
该方法有以下几种语法格式:
double rint(double d)
参数
- double 原始数据类型。
返回值
返回 double 类型数组,是最接近参数的整数值。
实例
public class Test{
public static void main(String args[]){
double d = 100.675;
double e = 100.500;
double f = 100.200;
System.out.println(Math.rint(d));
System.out.println(Math.rint(e));
System.out.println(Math.rint(f));
}
}
编译以上程序,输出结果为:
101.0
100.0
100.0
11、round() 方法
返回一个最接近的int、long型值。
语法
该方法有以下几种语法格式:
long round(double d)
int round(float f)
参数
-
d -- double 或 float 的原生数据类型
-
f -- float 原生数据类型
返回值
返回一个最接近的int、long型值,方法会指定返回的数据类型。
实例
public class Test{
public static void main(String args[]){
double d = 100.675;
double e = 100.500;
float f = 100;
float g = 90f;
System.out.println(Math.round(d));
System.out.println(Math.round(e));
System.out.println(Math.round(f));
System.out.println(Math.round(g));
}
}
编译以上程序,输出结果为:
101
101
100
90
12、min() 方法
用于返回两个参数中的最小值。
语法
该方法有以下几种语法格式:
double min(double arg1, double arg2)
float min(float arg1, float arg2)
int min(int arg1, int arg2)
long min(long arg1, long arg2)
参数
该方法接受两个原生数据类型作为参数。
返回值
返回两个参数中的最小值。
13、max() 方法
用于返回两个参数中的最大值。
语法
该方法有以下几种语法格式:
double max(double arg1, double arg2)
float max(float arg1, float arg2)
int max(int arg1, int arg2)
long max(long arg1, long arg2)
参数
该方法接受两个原生数据类型作为参数。
返回值
返回两个参数中的最大值。
14、exp() 方法
用于返回自然数底数e的参数次方。
语法
该方法有以下几种语法格式:
double exp(double d)
参数
-
d -- 任何原生数据类型。
返回值
返回自然数底数e的参数次方。
实例
public class Test{
public static void main(String args[]){
double x = 11.635;
double y = 2.76;
System.out.printf("e 的值为 %.4f%n", Math.E);
System.out.printf("exp(%.3f) 为 %.3f%n", x, Math.exp(x));
}
}
编译以上程序,输出结果为:
e 的值为 2.7183
exp(11.635) 为 112983.831
15、log() 方法
用于返回参数的自然数底数的对数值。
语法
double log(double d)
参数
-
d -- 任何原生数据类型。
返回值
返回参数的自然数底数的对数值。
实例
public class Test{
public static void main(String args[]){
double x = 11.635;
double y = 2.76;
System.out.printf("e 的值为 %.4f%n", Math.E);
System.out.printf("log(%.3f) 为 %.3f%n", x, Math.log(x));
}
}
编译以上程序,输出结果为:
e 的值为 2.7183
log(11.635) 为 2.454
16、pow() 方法
用于返回第一个参数的第二个参数次方。
语法
double pow(double base, double exponent)
参数
-
base基数 -- 任何原生数据类型。
-
exponent指数 -- 任何原生数据类型。
返回值
返回第一个参数的第二个参数次方。
实例
public class Test{
public static void main(String args[]){
double x = 11.635;
double y = 2.76;
System.out.printf("e 的值为 %.4f%n", Math.E);
System.out.printf("pow(%.3f, %.3f) 为 %.3f%n", x, y, Math.pow(x, y));
}
}
编译以上程序,输出结果为:
e 的值为 2.7183
pow(11.635, 2.760) 为 874.008
25、random() 方法
用于返回一个随机数,随机数范围为 0.0 =< Math.random < 1.0。
语法
static double random()
参数
-
这是一个默认方法,不接受任何参数。
返回值
该方法返回 double 值。
实例
public class Test{
public static void main(String args[]){
System.out.println( Math.random() );
System.out.println( Math.random() );
}
}
编译以上程序,输出结果为:
0.5444085967267008
0.7960235983184115