P1 包装类-引入
【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】是不是有了包装类以后就不用基本数据类型了?
不是。
P2 包装类-常用属性-常用构造器
【1】直接使用,无需导包
Java.lang
【2】类的继承关系
java.lang.Object
java.lang.Number
java.lang.Integer
【3】实现接口
所有已实现的接口:
Serializable,Comparable<Integer>
【4】这个类被final修饰,那么这个类不能有子类,不能被继承:
public final class Integer
extends Number
implements Comparable<Integer>
【5】包装类是对基本数据类型的封装:对int类型封装产生了Integer
Integer类在对象中包装了一个基本类型int的值。Integer类型的对象包含一个int类型的字段
【6】类的历史
从以下版本开始:
JDK1.0
【7】属性
public class test01 {
//这是一个main方法,是程序的入口;
public static void main(String[] args){
//属性
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);
}
}
2147483647
-2147483648
-2147483648
2147483647
【8】构造器 (发现没有空参构造器)
(1)int 类型作为构造器的参数:
1.Integer i1 = new Integer(12);
public Integer (int value){//传入的int类型的数据
this.value = value;//将你传入的int类型的值给了底层你封装的那个value
}
(2)String类型作为构造器的参数:
public Integer(String s) throws NumberFormatException{//传入一个字符串 ,相当于调用这个构造器/ //的时候很可能会出现异常(当你传入字符串没有办法转为int类型的时候)
this.value = parseInt(s,10);//将字符串转为int类型的数,然后赋给底层的value
}
P3 包装类-自动装箱-自动拆箱
【9】包装类特有的机制:自动装箱 自动拆箱:
//自动装箱:int ---》 Integer
Integer i = 12;
System.out.println(i);
//自动拆箱:Integer---》int
Integer i2 = new Integer(12);
int num = i2;
System.our.println(num);
(1) 自动装箱 自动拆箱 是从JDK1.5以后新出的特新
(2) 自动装箱 自动拆箱:将基本数据类型和包装类进行快速的类型转换
public class test01 {
//这是一个main方法,是程序的入口;
public static void main(String[] args){
//自动装箱
Integer i = 12;
System.out.println(i);
//自动拆箱
Integer i2 = new Integer(12);
int num = i2;
System.out.println(num);
}
}
p4
【10】常用方法
public class test01 {
//这是一个main方法,是程序的入口;
public static void main(String[] args){
Integer i1 = new Integer(6);
Integer i2 = new Integer(12);
System.out.println(i1.compareTo(i2));
//Integer对象是通过new关键字创建对象的
Integer i3 = new Integer(12);
Integer i4 = new Integer(12);
System.out.println(i3 == i4);
boolean flag = i3.equals(i4);
System.out.println(flag);
//Integer对象通过自动装箱来完成的
Integer i5 = 12;
Integer i6 = 12;
System.out.println(i5.equals(i6));
System.out.println(i5 == i6);
//intValue
Integer i7 = 130;
int i = i7.intValue();
System.out.println(i);
//parseInt(String s)
int i8 = Integer.parseInt("12");
System.out.println(i8);
//toString
Integer i10 = 130;
System.out.println(i10.toString());
}
}
-1
false
true
true
true
130
12
130
P5
import java.util.*;
public class