装箱与拆箱操作
现在已经存在基本数据类型与包装类两种类型,这两种类型间的转换可以通过
以下方式定义。
装箱操作-将基本数据类型变为包装类的形式;
每个包装类的构造方法部可以接收各向数据’类型的变革.
拆箱操作:从包装类中取出被包装的数据
利用从Number类中继承而来的一系列xxxValue()方法完成。
//基础数据类型包装类的定义
//数据的装箱与拆箱操作
//数据类型的转换
//数据类型的包装类:byte(Byte) short(Short) int(Integer) long(Long) float(Float) double(Double) char(Character) boolean(Boolean)
//对象型包装类(Object直接子类):Character、Boolean
//数据型包装类(Number直接子类):Byte、Short、Integer、Long、Float、Double
//Number是一个抽象类,里面一共有六个操作方法:intValue()、doubleValue()、floatValue()、byteValue()、doubleValue()、shortValue()
class MyInt{ //一个类
private int num; //这个类包装的基本数据类型
//构造的目的是为了将基本数据类型传递给对象
public MyInt(int num){
this.num=num;
}
public int intValue(){ //将包装的数据内容返回
return this.num;
}
}
public class baozhuangclass{
public static void mian(String args[]){
MyInt mi=new MyInt(10); //将int包装为类
int temp=mi.intValue();//将对象中包装的数据取出
//只有取出包装数据之后才可以进行计算
System.out.println(temp*2);
}
}
//-------------------------------
//数据的装箱与拆箱操作
//装箱操作:将基本数据类型变为包装类的形式;
//每个包装类的构造方法都可以接收各自数据类型的变量;
//拆箱操作:从包装类之中取出包装的数据
//利用Number类中提供的一系列的:xxxValue()方法完成。
//使用int和Integer
public class baozhuangclass{
public static void main(String args[]){
Integer obj=new Integer(10); //将基本数据类型装箱。
int temp=obj.intValue(); //将基本数据类型拆箱
System.out.println(temp*2);
}
}
//---------------------------
public class baozhuangclass{
public static void main(String args[]){
Integer obj=10 //自动装箱
int temp=obj; //自动拆箱
obj++; //包装类直接进行数学计算
System.out.println(temp*obj);
}
}
//-----------------------------------------
//Object可以接收一切的引用数据类型,但是由于存在有自动的装箱机制,那么Object也可以存放基本类型了。
//流程:基本数据类型--->自动执行(成为对象)--->向上转型为Object
public class baozhuangclass{
public static void main(String args[]){
Object obj=10; //向包装再转换
//Object不可能直接向下转型为int
int temp=(Integer)obj; //向下变为Integer而后自动拆箱
System.out.println(temp*2);
}
}
//-------------------------------------------
//数据类型的转换(核心)---包装类用得最多的
//在包装类里面提供有将String型数据变为基本数据类型的方法。
//使用几个代表的类做说明
//Integer类:public static int parseInt(String s);
//Double类:public static double parseDouble(String s);
//Boolean类:public static boolean parseBoolean(String s);
//需要特别注意的是Character类里面并不存在有字符串变为字符的方法
//因为String类有一个charAt()的方法索引取出字符内容。
//范例:将字符串变为int型数据
public class baozhuangclass{
public static void main(String args[]){
String str="1a3"; //字符串
int temp=Interger.parseInt(str);
System.out.println(temp*2);
}
}
//-------------------------------
//public static String valueOf(数据类型 变量)
public class baozhuangclass{
public static void main(String args[]){
int num=100;
String str=String.valueOf(num);
System.out.println(str.replaceAll("0","9");//将0替换为9
}
}
//字符串变为基本数据类型,依靠包装类的parseXxx()方法
//基本数据类型变为字符串,依靠String.valueOf(数据类型)方法。