基本数据类型的包装类
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"));