包装类,装箱拆箱,匿名内部类,Number类

    科技2024-10-17  6

    文章目录

    包装类装箱拆箱包装类应用匿名内部类Number类

    包装类

    包装类就是将8种基本类型变成一个类的形式。 JDK文档有包装类的继承关系:

    Integer,Byte,Float,Double,Short,Long都属于Number类的子类,Number类提供一系列返回以上6种基本数据类型的操作;Character属于Object的直接子类;Boolean属于Object的直接子类 Number是一个抽象类,将数字包装类的内容变成基本数据类型。

    装箱拆箱

    将一个基本数据类型变成包装类是装箱操作; 将一个包装类变成基本数据类型是拆箱操作。

    public class WrapperDemo1 { public static void main(String[] args) { int a=20; Integer integer=new Integer(a);//装箱 ,将基本数据类型变成包装类 int temp=integer.intValue();//拆箱,将包装类变成基本数据类型 } }

    对于拆箱使用的就是Number类中定义的方法。 自动装箱拆箱

    public class WrapperDemo1 { public static void main(String[] args) { Integer a1=20;//自动装箱 Float a2=12.12f; int aa1=a1;//自动拆箱 float aa2=a2; } }

    包装类应用

    实际中应用最多的还是字符串转变为基本数据类型的操作。

    public class Test { public static void main(String[] args) { String string1="20"; String string2="20.3"; int x=Integer.parseInt(string1); float f=Float.parseFloat(string2); } }

    注意:字符串种的数据必须和要转去的类型相匹配。

    匿名内部类

    匿名内部类就是指没有一个具体名称的类,直接在接口和抽象的应用上发展起来的。

    interface A{ public void printInfo();//定义抽象方法 } class X{ public void fun1(){ this.fun2(new A(){//匿名内部类 @Override public void printInfo() {//实习接口中的抽象方法 System.out.println("hello"); } }); } private void fun2(A a) {//接受接口实例 a.printInfo();//调用接口方法; } } public class Test2 { public static void main(String[] args) { new X().fun1();//实例化X类的对象,并调用fun1()的方法。 } }

    代码解释:

    直接实例化接口对象 new A(){}实现A的抽象方法

    Number类

    Java Number包括以下6种类型 Byte类型

    长度:1byte/8bit 最大值:127 0b0111_1111 最小值:-128 0b1000_0000

    Short类型

    长度:2byte/16bit 最大值: 2^15 32767 0x7fff 0b0111_1111_1111_1111 最小值:-2^15 -32768 0x8000 0b1000_0000_0000_0000

    Integer类型

    长度:4byte/32bit 最大值: 2^31 -21亿 0x7fffffff 最小值:-2^31 -21亿 0x80000000

    Long类型

    长度:8byte/64bit 最大值: 2^639*10^18 最小值:-2^63

    Float类型

    长度:4byte/32bit 正最大值:0x7f7fffff,约3.4*10^38 正最小值:0x00000001,月1.4*10^(-45)

    Double类型

    长度:8byte/64bit 正最大值:1.8*10^308 正最小值:4.9*10^(-304)
    Processed: 0.066, SQL: 8