基本数据类型的包装类

Java设计之初,一切皆对象。但是基本数据类型不是对象。

开始的时候人为的包装一个基本数据类型

class Myint{

private int num ;

public Myint(int num){//打包

this.num = num ;

}
public int intValue(){//拆包
return this.num;
}
.....
}

Java提供了一些包装类。

byte(Byte)

short(Short)

int (Interger).....

long(Long)

float(Float)

double(Double)

char(Character)......

boolean(Boolean)

以上分为两种子类型:

1.对象型包装类:Character 和 Boolean     继承自Object

2.数据型包装类:    继承自Number

 

装箱与拆箱:

已经存在有基本数据类型与包装类,两种变量之间的转换

装箱:将基本数据类型变为包装类

拆箱:取出数据

   利用NUmber类的xxxValue()完成。

int:

public class Demo{
    public static void main(String arg[]){
        Integer obj = new Integer(10) ;//将基本数据类型装箱
        int temp = obj.intValue() ;
        System.out.print(temp * 2) ;
    }
}

boolean:

public class Demo{
    public static void main(String arg[]){
        Boolean obj = new Boolean(true);
        boolean temp = obj.booleanValue();
        System.out.println(temp);
    }
}

 

以上代码是在JDK1.5之前的,后来java优化:

范例:

import javax.swing.JCheckBox;

public class Demo{
    public static void main(String arg[]){
        Integer obj = 10 ;
        int temp = obj ;
        obj ++ ;  
        System.out.print(obj); 
        
        Integer obja = 10 ;
        Integer objb = 10 ;  //直接赋值
        Integer objc = new Integer(10) ; //构造方法
        System.out.println(obja == objb); //true
        System.out.println(obja == objc); //false
        System.out.println(obja.equals(objc)) ; //true
    }
}

判断是否相等的时候一定要使用equals()。

 

public class Demo{
    public static void main(String arg[]){
        Object object = 10 ;     //先包装再转换
        int integer = (Integer) object ;
        System.out.println(integer); 
        
    }
}


Double dou = 10 ;      //错误
  Double double1 =10.2 ;//正确

 

数据类型转换

使用包装类最多的是数据类型转换功能,将String类型转换为其他的类型的转换。

范例:

int类型

float类型

double类型

Character类型

charAt();

 

String string = "123" ;
        int temp = Integer.parseInt(string);
        System.out.println(temp); 

 

public class Demo{
    public static void main(String arg[]){
        String string = "adfadf" ;
        boolean bo = Boolean.parseBoolean(string);
        if(bo){
            System.out.println("true") ;
        }else{
            System.out.println("false") ;
        }
        
    }
}
结果 false
如果转换的时候字符创不是“true”和“false”,那么久会转换为false

 

念::任何字符类型和String类型使用了  + 操作后都会变为String类型;

但是这样的操作会存在垃圾问题。num + ”“;

在String中有些方法:

ValueOf();

 

 

int num = 100 ;
        String string = String.valueOf(num);
        System.out.println(string.replaceAll("0","1"));

 

posted @ 2016-01-13 20:27  式微胡不归  阅读(147)  评论(0编辑  收藏  举报