众所周知,
Java是一种面向对象的语言,即严格遵循类和对象的原则,但是Java不是100%OOP语言也确实如此,原因是Java仍然使用原始数据类型,例如int, char,float,long,double等。人们感到有必要将这些原始数据类型转换为类和对象,因此Java引入了一种称为包装器类的概念。
包装器类的对象包装原始数据类型,当我们需要在原始数据类型上使用更多方法时,例如在假设我们要将Non-String Object转换为String类型(使用toString()
method)时,这toString()
将很方便返回对象的字符串表示形式。同样,我们可以有许多其他示例。
回到Java的Wrapper类,让我们看看Java中可用的Wrapper类。
数据类型 | 包装类 |
---|---|
int | Integer |
float | Float |
long | Long |
byte | Byte |
short | Short |
char | Character |
double | Double |
boolean | Boolean |
让我们来讨论两个与包装器类相关的概念,它们非常简单:
原始数据类型到相应对象的转换称为装箱,它由编译器在构造函数的帮助下处理。
System.out.println("Enter an Integer:"); int n=KB.nextInt(); Integer I=new Integer(n); //装箱:创建整数对象 System.out.println(I);
输出结果:
Input: 8 Output: 8
可以将其与装箱相反,当需要将对象转换回相应的原始数据类型时,则称为拆箱。
Integer I=new Integer(n); inti=I; //拆箱:将对象转换为原始类型 System.out.println(i);
输出结果
Input: 8 Output: 8
import java.util.*;class Wrapper{ public static void main(String args[]) { Scanner KB=new Scanner(System.in); //int- Integer System.out.println("Enter an Integer:"); int n=KB.nextInt(); Integer I=new Integer(n); System.out.println(I); //long- Long System.out.println("Enter a Long Integer:"); long l=KB.nextLong(); Long L=new Long(l); System.out.println(L); //float- Float System.out.println("Enter a Float Value:"); float f=KB.nextFloat(); Float F=new Float(f); System.out.println(F); //char- Character System.out.println("Enter a Character:"); char c=KB.next().charAt(0); Character C=new Character(c); System.out.println(C); //double- Double System.out.println("Enter a Double:"); Double d=KB.nextDouble(); Double D=new Double(d); System.out.println(D); }}
输出结果:
Enter an Integer: 8 8 Enter a Long Integer: 1234567898745 1234567898745 Enter a Float Value: 8.8 8.8 Enter a Character: c c Enter a Double: 12.55 12.55