第五章

第五章.

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值