第五章.
5.4对象包装器
Integer类对应基本类型int,这些类称为包装器(wrapper).
包装器包括:Integer,Long,Float,Double,Short,Byte,Character,Void和Boolean,前六个派生于公共的超类Number.
对象包装类是不可变的.是final,不能定义子类.
ArrayList<Integer>.<>中只能是包装器类.
ArrayList<Integer> list = new ArrayList<Integer>();list.add(3) == list.add(new Integer(3));称之为自动打包.int i = list.get(i);称之为自动拆包.
比较包装对象的时候要用equals.
5.5参数数量可变的方法
public static double max(double ... values)
max(1.2,2.1,2.3),可以传入多个值。编译器将new double[]{}传入max方法。
5.7反射
反射机制:
在运行中分析类的能力,在运行中查看类的对象,实现数组的操作代码,利用Method对象。
Class类,getClass返回一个Class类型的实例,Class中有很多方法,getName为最常用的一个,返回类的名字。
Field[] getFields()返回一个包含Field对象的数组,记录了这个类或者超类的公有域。
Field[] getDeclareFields()返回全部域。
Method[] getMethods()返回所有的公有方法,包括从超类继承来的方法。
Method[] getDeclareMethods()返回类或接口的全部方法不包括从超类继承的。
Constructor[] getConstructors()返回公有构造方法
Constructor[] getDeclareConstructors()返回所有构造方法
利用改写泛型数组的代码解释反射。
利用array类中的newInstance方法。
Object newArray = Array.newInstance(componentType,newLength)
Class componenType = a.getClass().getComponentType()//确定数组类型
newLength是新数组的长度。
继承设计的技巧
1.将公共操作和域放在超类。
2.不要使用受保护类,不要使用protected。
3.使用继承实现is-a关系,判断是否属于is-a关系,不要胡乱使用继承。
4.除非所有继承的方法都有意义,否则不要使用继承。
5.在覆盖方法时,不要改变预期的行动。在覆盖方法时不要偏离最初的目的。
6.使用多态,而非类型信息。
7.不要过多的使用反射。
第五章结束。
2011.0124 晚 johnny
5.4对象包装器
Integer类对应基本类型int,这些类称为包装器(wrapper).
包装器包括:Integer,Long,Float,Double,Short,Byte,Character,Void和Boolean,前六个派生于公共的超类Number.
对象包装类是不可变的.是final,不能定义子类.
ArrayList<Integer>.<>中只能是包装器类.
ArrayList<Integer> list = new ArrayList<Integer>();list.add(3) == list.add(new Integer(3));称之为自动打包.int i = list.get(i);称之为自动拆包.
比较包装对象的时候要用equals.
5.5参数数量可变的方法
public static double max(double ... values)
max(1.2,2.1,2.3),可以传入多个值。编译器将new double[]{}传入max方法。
5.7反射
反射机制:
在运行中分析类的能力,在运行中查看类的对象,实现数组的操作代码,利用Method对象。
Class类,getClass返回一个Class类型的实例,Class中有很多方法,getName为最常用的一个,返回类的名字。
Field[] getFields()返回一个包含Field对象的数组,记录了这个类或者超类的公有域。
Field[] getDeclareFields()返回全部域。
Method[] getMethods()返回所有的公有方法,包括从超类继承来的方法。
Method[] getDeclareMethods()返回类或接口的全部方法不包括从超类继承的。
Constructor[] getConstructors()返回公有构造方法
Constructor[] getDeclareConstructors()返回所有构造方法
利用改写泛型数组的代码解释反射。
利用array类中的newInstance方法。
Object newArray = Array.newInstance(componentType,newLength)
Class componenType = a.getClass().getComponentType()//确定数组类型
newLength是新数组的长度。
继承设计的技巧
1.将公共操作和域放在超类。
2.不要使用受保护类,不要使用protected。
3.使用继承实现is-a关系,判断是否属于is-a关系,不要胡乱使用继承。
4.除非所有继承的方法都有意义,否则不要使用继承。
5.在覆盖方法时,不要改变预期的行动。在覆盖方法时不要偏离最初的目的。
6.使用多态,而非类型信息。
7.不要过多的使用反射。
第五章结束。
2011.0124 晚 johnny