Java学习提要——包装类与数据类型转换

来源:互联网 发布:手机自动升级软件 编辑:程序博客网 时间:2024/04/29 21:36

1.基本定义

方便用户的使用,专门提供了一组包装类,来包装所有的基本类型

byte(Byte)、int(Integer)、long(Long)、short(Short)、float(Float)、double(Double)、char(Character)、boolean(Boolean)、
又分为

对象型包装类(Object直接子类): Character 、Boolean

以及

数值型包装类(Number直接子类(Number是Object的直接子类)): Byte 、Integer、Long、Float、Double、Short
number是一个抽象类,其定义了六个操作方法: intValue()doubleValue()shortValue()longValue()floatValue()byteValue()

2.装箱与拆箱

装箱操作:将基本的数据类型变为包装类的形式
拆箱操作:从包装类之中取出被包装的数据
上例子…

//Integer:number子类public class Test {  public static void main(String args[] ) {    Integer obj = new Integer(100) ; //装箱    int temp = obj.intValue() ;   //拆箱,return    System.out.println(temp + 2);  }}
//Boolean:非number子类public class Test {  public static void main(String args[] ) {    Boolean obj = new Boolean(true) ;  //装箱    boolean temp = obj.booleanValue() ; //拆箱,return    System.out.println(temp);  }}

以上是JDK1.5 之前,那么JDK1.5之后呢,

//Integer:number子类public class Test {  public static void main(String args[] ) {    Integer obja = 100 ; //自动装箱    int temp = obja  ;  //自动拆箱,return//   obja ++ ;      //包装类直接进行数学计算    System.out.println(temp +  obja);    Integer objb = 100;    Integer objc = new Integer(100) ;    System.out.println(obja == objb);//true     System.out.println(obja == objc);//false    System.out.println(objb == objc);//false    System.out.println(obja.equals(objc));//true  }}

在包装类时很少会利用构造,几乎都是直接使用赋值(和String一样),但是两者比较时,记住一定要用equals()。

顺便说下Object的向下转型:

public class Test {  public static void main(String args[] ) {    Object obj = 10 ;    //不可以直接转型为int    int num = (Integer) obj ;//向下变为Integer然后自动拆箱    System.out.println(num);  }}

注意!!Double定义的时候,一定要有小数,如果没有它会认为你的类型是int,它不会接收。

3.数据类型转换

一般是由String转向各数据类型,或者各数据类型转向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()的方法,可以根据索引取出字符

String->各类型 例:

//Integer:public class Test {  public static void main(String args[]) {    String str = "123" ;    int num = Integer.parseInt(str) ;    System.out.perintln(num);  }}

注意!此字符串不能由非数字组成(包括小数点),不然的话,会有报错(NumberFormatException)

//Boolean:public class Test {  public static void main(String args[] ) {    String str = "true" ;    boolean flag = Boolean.parseBoolean(str) ;    if(flag){      System.out.println("OK");    }else {      System.out.println("BAD");    }  }}

boolean转换的时候,如果不是true或者false的话,那么将统一按照flase来处理

各类型->String 例:
操作一:
任何基本数据类型与字符串使用“+” 操作之后,都表示变为字符串(刚开始学java时的各类型与String同时输出)
操作二:(主要)
格式:String.valueOf()
例:

public class Test {  public static void main(String args[]) {    int num = 100 ;    String str = String.valueOf(num) ;    System.out.perintln(str.replaceAll("0","6"));//把num中的‘0’全部换成‘6’  }}

这样转换不会产生垃圾,所有也比较常用

0 0
原创粉丝点击