文章目录
【一】java包装类_引入
【1】什么是包装类:
以前定义变量,经常使用基本数据类型。
对与基本数据类型来说,它就是一个数,加点属性,加点方法,加点构造器。
将基本数据类型对应进行了一个封装,产生了一个新的类,–》包装类。
int 、byte ~ --》基本数据类型。
包装类—》引用数据类型。
【2】基本数据类型对应的包装类:
基本数据类型 | 对应的包装类 | 继承关系 |
---|---|---|
byte | Byte | – 》Number --》Object |
short | Short | – 》Number --》Object |
int | Integer | – 》Number --》Object |
long | Long | – 》Number --》Object |
float | Float | – 》Number --》Object |
double | Double | – 》Number --》Object |
char | Character | Object |
boolean | Boolean | Object |
【3】已经有基本数据类型了,为什么药封装为包装类?
(1)Java语言 面向对象的语言,最擅长的操作各种各样的类。
(2)以前学习装数据的–》数组,int[ ]、String[ ]、double[ ]、Student[ ]
以后学习的装数据的–》集合,有一个特点,只能装引用数据类型的数据。
【4】是不是有了包装类以后就不用基本数据类型了?
不是。
【二】包装类_常用属性_常用构造器
【1】直接使用,无需导包
Java.lang
类 Integer
【2】类的继承关系
【3】实现接口
java.lang.Object
java.lang.Number
java.lang.Integer
【4】这个类被final修饰,那么这个类不能有子类,不能被继承
【5】包装类是对基本数据类型的封装:对int类型封装产生了Integer
Integer类包装一个对象中的原始类型int的值。 类型为Integer的对象包含一个单一字段,其类型为int 。
【6】类的历史:
【7】属性:
//属性
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
//“物极必反”原理:
System.out.println(Integer.MAX_VALUE+1);
System.out.println(Integer.MIN_VALUE-1);
【8】构造器()
(1)int类型作为构造器的参数:
Integer i1=new Integer(12);
(2)String类型作为构造器的参数:
Integer i2=new Integer("12");
Integer i3=new Integer("adc");
【9】包装类的特有的机制:自动装箱、自动拆箱:
//自动装箱:int -->Integer
Integer i=12;
System.out.println(i);
//自动拆箱:Integer -->int
Integer i2=new Integer(12);
int num=i2;
System.out.println(i2);
(1)自动装箱 自动拆箱 是从JDK1.5以后新出的特性。
(2)自动装箱 自动拆箱 :将基本数据类型和包装类进行快速的类型转换。
验证:
可以自己打断点测试是否走入valueOf方法中:
【10】常用方法:
valueOf方法的底层
//equals:Integer对Object中的equals方法进行了重写,比较的是底层封装的那个value的值
//Integer对象是通过new关键字创建的对象
Integer i3=new Integer(12);
Integer i4=new Integer(12);
System.out.println(i3==i4);//false 因为==比较的是两个对象的地址
System.out.println(i3.equals(i4));
//Integer对象通过自动装箱来完成
Integer i5=12;
Integer i6=12;
System.out.println(i5.equals(i6));//返回true
System.out.println(i5==i6);//
/*
如果自动装箱的值在-128~127之间比较的就是具体的数值,否之,比较的就是对象的地址
*/
//intValue( ):作用将Integer-->int
Integer i7=130;
int i=i7.intValue();
System.out.println(i);
//parseInt(String s):String-->int:
int i8=Integer.parseInt("123456");
System.out.println(i8);
//toString:Integer-->String
Integer i10=130;
System.out.println(i10.toString());
参考:马士兵珊珊老师Java基础讲