个性化阅读
专注于IT技术分析

Java包装类

本文概要

Java中的包装类提供了转换成原始对象和对象为基本的机制。

由于J2SE 5.0,自动装箱和拆箱功能转换成图元对象和对象到自动元。的原语中的自动转换成一个对象被称为自动装箱,反之亦然拆箱。

在Java中使用的包装类

Java是一种面向对象的编程语言,所以我们需要很多次类似处理对象类别,序列化,同步等让我们看到了不同的场景,在这里我们需要使用包装类。

  • 更改方法值:Java支持只值调用。所以,如果我们通过一个原始值,也不会改变原有的价值。但是,如果我们在一个对象转换为原始值,它会改变原来的值。
  • 连载:我们需要将对象转换为数据流进行序列化。如果我们有一个原始值,我们可以把它的对象通过包装类转换。
  • 同步:Java同步工作在多线程对象。
  • java.util包:java.util包中提供了实用工具类来处理对象。
  • 集合框架:Java集合框架的工作,只有对象。集合框架的所有类(数组列表,链表,矢量,HashSet的,LinkedHashSet,TreeSet中,PriorityQueue中,ArrayDeque等)只处理对象。

八类java.lang包都被称为Java包装类。 8个包装类的列表给出如下:

原始类型包装类
booleanBoolean
烧焦Character
byteByte
shortShort
INTInteger
longLong
floatFloat
Double

自动装箱

原始数据类型的自动转换成其相应的包装类被称为自动装箱,例如字节到字节,字符到字符,INT为整数,长到长整型,浮点到浮点数,布尔值布尔,双对双,和短太短。

由于Java 5,我们并不需要使用包装类的的valueOf()方法将原始转换为对象。

包装类实例:原始到包装

//Java program to convert primitive into objects
//Autoboxing example of int to Integer
public class WrapperExample1{
public static void main(String args[]){
//Converting int into Integer
int a=20;
Integer i=Integer.valueOf(a);//converting int into Integer explicitly
Integer j=a;//autoboxing,now compiler will write Integer.valueOf(a) internally

System.out.println(a+" "+i+" "+j);
}}

输出:

20 20 20

拆箱

自动转换包装类型的成其相应的原语类型被称为取消装箱。它是自动装箱的逆过程。由于Java 5,我们并不需要使用包装类的的intValue()方法来包装类型转换成原语。

包装类实例:包装到原始

//Java program to convert object into primitives
//Unboxing example of Integer to int
public class WrapperExample2{  
public static void main(String args[]){  
//Converting Integer to int  
Integer a=new Integer(3);  
int i=a.intValue();//converting Integer to int explicitly
int j=a;//unboxing,now compiler will write a.intValue() internally  
  
System.out.println(a+" "+i+" "+j);  
}}

输出:

3 3 3

Java包装类实例

//Java Program to convert all primitives into its corresponding 
//wrapper objects and vice-versa
public class WrapperExample3{
public static void main(String args[]){
byte b=10;
short s=20;
int i=30;
long l=40;
float f=50.0F;
double d=60.0D;
char c='a';
boolean b2=true;

//Autoboxing: Converting primitives into objects
Byte byteobj=b;
Short shortobj=s;
Integer intobj=i;
Long longobj=l;
Float floatobj=f;
Double doubleobj=d;
Character charobj=c;
Boolean boolobj=b2;

//Printing objects
System.out.println("---Printing object values---");
System.out.println("Byte object: "+byteobj);
System.out.println("Short object: "+shortobj);
System.out.println("Integer object: "+intobj);
System.out.println("Long object: "+longobj);
System.out.println("Float object: "+floatobj);
System.out.println("Double object: "+doubleobj);
System.out.println("Character object: "+charobj);
System.out.println("Boolean object: "+boolobj);

//Unboxing: Converting Objects to Primitives
byte bytevalue=byteobj;
short shortvalue=shortobj;
int intvalue=intobj;
long longvalue=longobj;
float floatvalue=floatobj;
double doublevalue=doubleobj;
char charvalue=charobj;
boolean boolvalue=boolobj;

//Printing primitives
System.out.println("---Printing primitive values---");
System.out.println("byte value: "+bytevalue);
System.out.println("short value: "+shortvalue);
System.out.println("int value: "+intvalue);
System.out.println("long value: "+longvalue);
System.out.println("float value: "+floatvalue);
System.out.println("double value: "+doublevalue);
System.out.println("char value: "+charvalue);
System.out.println("boolean value: "+boolvalue);
}}

输出:

---Printing object values---
Byte object: 10
Short object: 20
Integer object: 30
Long object: 40
Float object: 50.0
Double object: 60.0
Character object: a
Boolean object: true
---Printing primitive values---
byte value: 10
short value: 20
int value: 30
long value: 40
float value: 50.0
double value: 60.0
char value: a
boolean value: true

在Java中的自定义包装类

Java包装类包装的原始数据类型,这就是为什么它被称为包装类。我们也可以创建它包装原始数据类型的类。因此,我们可以在Java中创建自定义的包装类。

//Creating the custom wrapper class
class srcmini{
private int i;
srcmini(){}
srcmini(int i){
this.i=i;
}
public int getValue(){
return i;
}
public void setValue(int i){
this.i=i;
}
@Override
public String toString() {
  return Integer.toString(i);
}
}
//Testing the custom wrapper class
public class Testsrcmini{
public static void main(String[] args){
srcmini j=new srcmini(10);
System.out.println(j);
}}

输出:

10
赞(0)
未经允许不得转载:srcmini » Java包装类

评论 抢沙发

评论前必须登录!