java包装类-java类里套类
文章目录
Object类 &Number类
八种基本数据结构都分别有对应的包装类,属于引用数据类型。包装类层次结构如下
所以先介绍Object类和Number类
1.Object 2.Number类
常用方法
方法含义
xxx xxxValue()
将 Number 对象转换为xxx数据类型的值并返回。如 int intValue()
valueOf()
返回一个 Number 对象指定的内置数据类型
toString()
以字符串形式返回值
parseInt()
将字符串转换为int型
注意下面的Integer等类都继承了Number类
包装类,装箱,拆箱
Java提供了两个类型系统,基本类型与引用类型java包装类,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能。(指路基本数据类型和引用数据类型区别)
所以 Java 为每种基本数据类型分别设计了对应的类,称为包装类
装箱:基本数据类型转换为包装类的过程称为装箱( int 包装成 Integer 类的对象)
拆箱:包装类变为基本数据类型的过程称为拆箱( Integer 类的对象简化为 int)
八种基本数据类型对应的包装类如下:
基本类型对应的包装类(位于java.lang包中)
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
char
Character
boolean
Boolean
1.手动装箱/拆箱
手动的意思就是按照创建对象那套方法来处理包装类,但目前已经很少用了(Java5 提出了自动装箱),看一下示例吧:
// 将2023这个基本数据类型进行装箱,基本数据类型--->包装类
Integer i = new Integer(2023);
// 拆箱,将引用数据类型---> 基本数据类型
int retValue = i.intValue();
System.out.println(retValue); //2023
// 也可以转换为不同类型的
float f = i.floatValue();
System.out.println(f); //2023.0
2.自动装箱/ 拆箱
目前都是自动装箱、拆箱
// 自动装箱
Integer x = 2023; // 等同于:Integer i = new Integer(2023);
System.out.println(x);
// 自动拆箱,x是包装类型,y是基本数据类型
int y = x;
System.out.println(y);
应用——常见包装类
主要讲解常见的Integer类和Character类
1.Integer类
Integer 类在对象中包装了一个基本类型 int 的值
(1)常用方法
注意基本都是static类,所以可以直接通过类调用。前几个方法很重要!
方法名说明
static int parseInt(String s)
将数字字符串转换为 int 数值
string toString(int i)
返回一个表示该 Integer 值的 String 对象
static Integer valueOf(String s)
返回保存指定String值的 Integer 对象
static String toBinaryString(int i)
将整型 i 转成二进制(另外还有转成8进制java包装类,16进制的方法)
static Integer valueOf(int i)
返回表示指定的 int 值的 Integer 实例
int intValue()
以 int 类型返回该 Integer 的值
Byte、Short、Long、Float、Double、Boolean等和Integer方法都相似!
e.g.
String str = "456";
int num = Integer.parseInt(str); // 将字符串转换为int类型的数值
int i = 789;
String s = Integer.toString(i);
另外parseInt还可以转化为相应的进制数,因为完整的方法名是
static int parseInt(String s, int radix),其中radix是指定的基数(基数可以是 10, 2, 8, 或 16 等进制数)
(2)常量
前两个比较重要!
常量含义
MAX_VALUE
值为 2312^{31}231-1 的常量,它表示 int 类型能够表示的最大值。
MIN_VALUE
值为 −231-2^{31}−231 的常量,它表示 int 类型能够表示的最小值
SIZE
用来以二进制补码形式表示 int 值的比特位数
TYPE
表示基本类型 int 的 Class 实例
2.Character类
常用方法
方法含义
char charValue()
将Character转成char
String toString()
将Character转成String
static boolean isDigit(char ch)
判断ch是不是数字
static boolean isLetter(char ch)
判断ch是不是字母
boolean isLetterOrDigit(int codePoint)
确定指定字符(Unicode 代码点)是否为字母或数字
boolean isLowerCase(char ch)
确定指定字符是否为小写字母
boolean isUpperCase(char ch)
确定指定字符是否为大写字母
char toLowerCase(char ch)
使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写
char toUpperCase(char ch)
使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写
3.实战——各种类型之间的转换
综合上面的方法,总结平时转换的需求
(1)int和Integer相互转换
这个上面提到过,可以手动也可以自动装箱
public static void main(String[] args) {
int m = 500;
Integer obj = new Integer(m); // 手动装箱
int n = obj.intValue(); // 手动拆箱
System.out.println("n = " + n);
}
(2) char与int的互相转化
因为两者都是基本数据类型,可以直接转化,一般是通过隐式转化或者强制转化
char - -> int,可以隐式转化,但是注意此时转化的是字符的ASCII值
char c1='a';//定义一个char类型
int i1 = c1;//char自动类型转换为int
System.out.println("char自动类型转换为int后的值等于"+i1);
如果是数字字符转化为int,常见的技巧是-'0'
char c='5';//定义一个char类型
int i = c1-'0';//char转换为int,为整型5
同理如果想要int转char,可以+'0'
int m = 5;
char c = m+'0';
(3)基本数据类型转化为String
拿int转String举例,一般有三种方法:
// int 转换为 String
public static void main(String[] args) {
int number = 100;
//方式1
String s1 = number + "";
System.out.println(s1);
//方式2 public static String valueOf(int i)
String s2 = String.valueOf(number);
System.out.println(s2);
// 方式三, public static String toString(int i)
String s3 = Integer.toString(number);
System.out.println(s3);
}
(4)String转化为基本数据类型
除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型,例如:
拿String转int举例,转换方式:
// String 转换为 int
public static void main(String[] args) {
String s = "100";
//方式1 public static int parseInt(String s)
int y = Integer.parseInt(s);
System.out.println(y);
//方式2:String --- Integer --- int
Integer i = Integer.valueOf(s);
int x = i.intValue(); //public int intValue()
System.out.println(x);
}
参考链接: