学习一个类
1、观察它继承的父类,实现了那些接口
2、找到它的成员变量
3、学习构造方法
4、学习方法
一、父类和接口
从图中可以知道,Byte类继承了Number类,实现了Comparable接口
对于Comparable接口,只有一个抽象方法
这个接口赋予它和它的子类比较的能力,用于排序,比较大小
对于一个存储自定义类的数组或集合,只有这个类实现了该接口,重写了接口中的compareTo()方法,重写了排序规则
才能使用Arrays类的sort方法进行排序;
二、成员变量
定义了Byte类型数据的边界值,就是说,Byte类型的值只能在-128~127之间
TYPE是一个Byte的Class类对象,相当于TYPE=Byte.class;
这就是Byte类型的基础类型,数据存储的地方(从下面的构造方法可以看出)
这三个成员变量分别表示Byte数据的位数,字节数和UID(用于序列化和反序列化)
三、构造方法
Byte的构造方法有两个,可以看出,两个构造方法都会将传入的数据存放到成员变量byte中
四,成员方法
- 1、toString(byte b)方法
注意:这个toString()方法不是重写Object的toString方法,因为它有参数
作用:将一个byte类型数据转化为String字符串类型
实质上是直接调用Integer类的toString方法,
radix:10:用10进制表示
私有静态内部类
这是Byte类的一个静态内部类,类里面还有一个静态代码块
静态代码块会在类第一次被加载的时候执行,并且只执行一次
这里的作用就是,创建一个Byte类型的数组,数组的长度是256
里面存储着-128~127的数字(Byte类数据所有可能的取值)
并且数组是静态的并且final修饰,
因为后面的有些成员方法会需要用到Byte对象,所以这样做就避免了重复创建对象和回收对象
-
2、valueOf(byte b)
作用:将基本类型–>包装类型,直接从上面的数组中得到 -
3、parseByte(String s,int radix)
-
参数:
String s:要解析的字符串
int radix:指定字符串表示的进制
例如:s=“10000”,radix=2,解析出来的值就是16
作用:
将字符串按照指定进制解析为byte类型
实质上调用的是Integer的parseInt方法,解析成int类型
判断是否超出范围,超出范围就抛异常,否则就返回 -
4、parseByte(String s)
不指定进制默认十进制解析 -
5、valueOf(String s,int radix)
-
参数:
String s:要转换的字符串
int radix:字符串表示的进制,和解析方法一样
作用:
将字符串转换为按照指定进制形式表示的Byte类型,
先将字符串解析为byte类型,在调用valueOf()方法,从静态代码块初始的数组中找到对应的Byte并返回 -
6、valueOf(String s)
默认10进制 -
7、xxxValue()方法
重写父类的方法,由于byte数值最小,不用担心出现溢出
直接用强制类型转换,然后return -
8、hashCode()
重写了父类的hashCode方法,对于Byte类型,它的hashCode方法实质上就是返回它的值 -
9、equals()方法
重写了父类的equals方法 -
10、compareTo()方法
重写了接口中的compareTo方法,直接返回两个对象的差值
调用方法的对象-方法的参数